update datalab
This commit is contained in:
parent
fb07fa860f
commit
b178775baf
@ -20,26 +20,9 @@ float_bits float_i2f(int i) {
|
|||||||
s = 0x80000000U;
|
s = 0x80000000U;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hb = 0, t = i;
|
int hb = 30;
|
||||||
if (t >> 16) {
|
while (!(i >> hb)) {
|
||||||
t = t >> 16;
|
hb = hb - 1;
|
||||||
hb = hb + 16;
|
|
||||||
}
|
|
||||||
if (t >> 8) {
|
|
||||||
t = t >> 8;
|
|
||||||
hb = hb + 8;
|
|
||||||
}
|
|
||||||
if (t >> 4) {
|
|
||||||
t = t >> 4;
|
|
||||||
hb = hb + 4;
|
|
||||||
}
|
|
||||||
if (t >> 2) {
|
|
||||||
t = t >> 2;
|
|
||||||
hb = hb + 2;
|
|
||||||
}
|
|
||||||
if (t >> 1) {
|
|
||||||
t = t >> 1;
|
|
||||||
hb = hb + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
i = i ^ (1 << hb);
|
i = i ^ (1 << hb);
|
||||||
|
@ -33,6 +33,4 @@ b&=(a+x_{w-1}\cdot y+y_{w-1}\cdot x)\bmod 2^w\\
|
|||||||
先得到粗糙的结果 `(x >> 2) + ((x >> 2) << 1)`,再根据 `x & 3` 以及 $x$ 的符号(决定舍入方向)进行修正。
|
先得到粗糙的结果 `(x >> 2) + ((x >> 2) << 1)`,再根据 `x & 3` 以及 $x$ 的符号(决定舍入方向)进行修正。
|
||||||
|
|
||||||
## 2.97
|
## 2.97
|
||||||
注意以下细节:
|
注意在某些情况下,舍入会导致有效位数增加。
|
||||||
- 使用“折半递归法”求 $i$ 的有效位数可以避免对于所有 $2^{32}$ 个 `int` 检验花费极长的时间;
|
|
||||||
- 在某些情况下,舍入会导致有效位数增加。
|
|
Loading…
x
Reference in New Issue
Block a user