无符号整型
以ushort和short为例,uint和int同理:
问题:ushort是无符号短整型取值为0~2^16,问ushort a = 65535; a++; a=?
推导:
- a的原码是:1111111111111111
- a的反码是:1111111111111111
- a的补码是:1111111111111111
- 1的补码是:0000000000000001
- 相加后补码为:0000000000000000
- 十进制为:0
- 如果a+=2答案为1,以此类推
有符号整型
问题:short是有符号短整型,取值为-2^15~2^15,问short b =32767; b++; b=?
推导:
- b的原码是:0111111111111111
- b的反码是:0111111111111111
- b的补码是:0111111111111111
- 1的补码是:0000000000000001
- 相加后补码为:1000000000000000
- 十进制为:-32768
- 注意:人为规定1000000000000000这个补码编码为-32768
- 如果b+=2答案为-32767,以此类推