2020-12-09

c++ primer (第五版)第二章习题答案

2.3
计算机中的符号数有三种表示方法,即原码、反码和补码。符号位都是用0表示“正”,用1表示“负”,

1.原码:例如对于8位表示数+11,即为:00001011,-11为:10001011;
2.反码:符号位不变,其他位取反:-11的反码为:11110100;
3.补码:正整数的补码是其二进制表示,与原码相同。求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。
1、对一个整数的补码再求补码,等于该整数自身。
2、将负数转换为无符号类型对应为将负数的原码转换为补码,int 类型为32位,即:
unsigned u = -42:输出值为: 11111111 11111111 11111111 11010110 =4294967254
3、上述也等价于这个负数-42加上无符号数的模, 对于int类型的无符号数(32位), 其模为:
11111111 11111111 11111111 11111111 = 4294967296, 取值为0-4294967296.
4,
2.4
结果分别为:

  1. 同类型= 32;
  2. unsigned -32 输出为:4294967264;
  3. 同类型:32
  4. -32
  5. 类型转换:正整数10转换为无符号类型10:结果:0
    6.转换为无符号类型,= 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值