家庭作业

家庭作业

第二章

2.62

分析:判断x移位之后是否还是全为1

bool int_shifts_are_logical()  
{  
    int x = ~0x00;  
    x >>= 1;  
    return ~x;  
}  

2.71

A. packed_t是无符号数,而它包装的4个字节都是有符号数,1byte的包装在无符号数中的有符号数扩展后符号位并没有扩展。例如,1byte的0xFF表示-1,而扩展成32位后应该为0xFFFFFFFF。而按照原函数中所示,扩展后结果是0x000000FF

B.

int xbyte(packed_t word , int bytenum)
{
    return (word << ((3 - bytenum) << 3)) >> 24;
}

2.79

int fiveeighths(int x)  
{  
    int w = sizeof(int) << 3;    
    int x_lmb = x >> (w - 1);    
    x_lmb && (x = x + 7);    
    x = x >> 3;        
    return x + (x << 2);  
}  

2.80

A. ~((1 << n) - 1) 【注意此时0<n<w】

B. ~(~0 << n) << m

2.83

浮点数最高位为符号位。

先处理-0、+0比较的情况:

!(ux<<1)&&!(uy<<1)

x为正,y为正:

(!sx && !sy && (ux >= uy))

x为负,y为负:

(sx && sy && (ux <= uy))

x为正,y为负:

!sx&&sy

以上式子使用||连接起来就是最终答案:

(!sx && sy) || (sx && sy && (ux <= uy)) || (!sx && !sy && (ux >= uy))

2.84

A. E = 2; M = 5/4; f = 1/4; V = 5.0

B. n位小数全为1。 E = n; M = 2 - 1/(2^n); f = 1 - 1/(2^n); V = 2^n * ( 2 - 1/(2^n) ) = 2^(n + 1) - 1

C. 最小规格化数: E = 2 - 2^(k - 1); M = f = 2^(-n); V = 2^E * M; 倒数为1/V

2.86

HexMEV
0x80000-62-
0x3f01257/2560257*2^(-8)
0x470018-
0x00ff255/256-62255*2^(-70)
0xff00---
0x3aa0416/256-5416*2^(-13)

2.87

1 01110 001 -9/161 0110 0010-9/16
0 10110 1012080 1110 1010208
1 00111 110-7/10241 0000 0111-7/1024
0 00000 101 

6/2^17

0 0000 00000
1 11011 000 -2^121 1111 0000负无穷
0 11000 1007680 1111 0000正无穷

转载于:https://www.cnblogs.com/sjy519/p/6106962.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值