计算机数据存储的一些总结

计算机数据存储的一些总结

  1. 补码的本质
    • 补码的本质是利用溢出来使加法与减法有相同结果。假设用8位来表示一个有符号数,那么溢出值为28 = 256。假如我们要计算x-127的值,那么,有:
      • 128 – 256 = -127
      • x + 128 – 256 = x + (-127)
    • 由于我们限定了8位表示一个数,所以计算机计算时会丢弃溢出位,也就是计算机帮我们做了上面的减256这一步,所以x + 128 = x – 127。同时,可以知道,-127的补码是128。
  2. 为什么用补码
    • 方便CPU用加法器算减法
  3. 运行时溢出(非加减法溢出)后的具体行为是什么决定
    • 具体行为由编译器决定,CPU只负责计算,unsigned整型溢出C语言规定把溢出位丢弃,signed整型溢出则看编译器行为。

Comments are closed.