private void Normalize() {
int w1, w2;
// Normalize mantissa
if (0 == this.u2) {
if (0 == this.u1) {
if (0 == this.u0) {
this.exp = 0;
return;
}
this.u2 = this.u0;
this.u0 = 0;
this.exp -= 64;
} else {
this.u2 = this.u1;
this.u1 = this.u0;
this.u0 = 0;
this.exp -= 32;
}
}
if (0 != (w1 = CbitZeroLeft(this.u2))) {
w2 = 32 - w1;
this.u2 = (this.u2 << w1) | (this.u1 >> w2);
this.u1 = (this.u1 << w1) | (this.u0 >> w2);
this.u0 = (this.u0 << w1);
this.exp -= w1;
}
}