noname
noname
你的答案 ```c for (i = 0; i < length-6; i+=6) { ``` 更好的答案 ```c for (i = 0; i < length-5; i+=6) { ``` 当 length 是 6 的倍数的时候,你的答案会让下个 for...
你的答案 ```asm movq 8(%rsp), REG ``` 正确答案 ```asm movq -8(%rsp), REG ```
你的答案 |which|e1|n|s1| |-|-|-|-| |least|1|even|n%16==1| |greatest|24|odd|n%16==0| 正确答案 |which|e1|n|s1| |-|-|-|-| |least|1|even|**s1**%16==1| |greatest|24|odd|**s1**%16==0|
2.80 ```c int threefourths(int x) { int is_pos = ~x & INT_MIN; int has_remainder = x & 3; int fourth = x >> 2; // 为了保证 threefourths 向零舍入 // fourth...
3.69 B 的答案是 ```c typedef struct { long idx, long x[4] } a_struct ``` 但是,实际上,根据对齐原则,idx 也可以是 int,short 和 char 类型。你可以修改以下 C 程序中设置,观察输出的结果。 ```C #include #define CNT 7 typedef struct {...
``` long cread(long *xp) { return (xp ? *xp : 0); } long cread_alt(long *xp) { return (!xp ? 0 : *xp); } ``` 我利用 gcc 5.4 把以上两个函数翻译到汇编。结果两个的汇编语句完全一样。 所以,你的在下方的比较是没有意义的。 这是我的解答
``` /** Compute (float) f. */ float_bits float_i2f(int i) { // 0 是 int 中的唯一的非规格化数,单独处理 if (i == 0) { return 0x0; } // 由于 -INT_MIN = INT_MIN // 后面的...
``` } else if (exp == 1) { /* Normalized to denormalized */ rest >>= 1; rest += addition; exp = rest >> 23 & 0xFF; frac = rest &...
你的代码 ``` if (exp == 0) { /* Denormalized */ frac
消除了代码中的 ">" 和 "