原码补码反码、位运算

121 阅读1分钟

1 . 原码补码反码

原码:

  • 原码:十进制数据的二进制表现形式,最左边的是符号位,0为正,1为负。

  • 利用原码对正数进行计算是不会有任何问题的。但是对负数的计算会有问题。

  • 一个字节是8个比特位,所以一个字节表示的最大数为127,最小为 -128

反码:

  • 反码:为了解决负数的原码计算有问题的问题
  • 正数的反码跟原码一样。
  • 负数的反码是指原码的符号位不变,其余位取反。
  • 缺点:跨 0 计算有问题。

补码:

  • 补码:为了解决负数跨 0 计算有问题。
  • 正数的补码跟原码、反码一样。
  • 负数的补码在反码的基础上 + 1
  • 所以补码可以多记录一个值 -128 。但该数据没有原码和反码。
  • 计算机中的储存和计算都是以补码的形式进行的

2 . 基本数据类型的储存

0818.png

3 . 位运算

0819.png

  • & 两个数字 ,对应比特位只有都为 1 ,才是 1 ,其余均为 0 .
  • | 两个数字 ,对应比特位有一个为 1 ,就为 1.
  • << 相当于把原数 * 2
  • >> 相当于把原数 / 2