无符号整型

以ushort和short为例,uint和int同理:

问题:ushort是无符号短整型取值为0~2^16,问ushort a = 65535; a++; a=?

推导:

  1. a的原码是:1111111111111111
  2. a的反码是:1111111111111111
  3. a的补码是:1111111111111111
  4. 1的补码是:0000000000000001
  5. 相加后补码为:0000000000000000
  6. 十进制为:0
  7. 如果a+=2答案为1,以此类推

有符号整型

问题:short是有符号短整型,取值为-2^15~2^15,问short b =32767; b++; b=?

推导:

  1. b的原码是:0111111111111111
  2. b的反码是:0111111111111111
  3. b的补码是:0111111111111111
  4. 1的补码是:0000000000000001
  5. 相加后补码为:1000000000000000
  6. 十进制为:-32768
  7. 注意:人为规定1000000000000000这个补码编码为-32768
  8. 如果b+=2答案为-32767,以此类推