0x01 计算机基础部分

1. 原码、反码和补码


  • 原码:原码的最高位保存的是它的符号位,负数的最高位为1
  • 反码:反码就是将原码除符号位外按位取反
  • 补码:补码就是反码+1

2. 二进制、十进制和十六进制


  • 二进制:0 1
  • 十进制:0 1 2 3 4 5 6 7 8 9
  • 十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F(方便计算)

3. 进制间的转换方式


  • 不同进制到十进制的转换
    • 权位相加法 (0xFF -> 15 (16^1) 15(16^0))
  • 十进制到不同进制的转换
    • 逆序取余数 ```cpp
  • 10进制 -> 2进制 被除数 商 余数
  • 10 / 2 > 5 0
  • 5 / 2 > 2 1
  • 2 / 2 > 1 0
  • 1 / 2 > 0 1 一定要除到1为止,逆序读取余数 10的二进制:1010 ```
  • 十六进制、八进制和二进制间的转换
    • 十六进制到二进制: 4个二进制 == 一个十六进制位 c(1100) f(1111)
    • 八进制到二进制:3个二进制 == 一个八进制位 5(101) 6(110) 7(111) “\o567”
  • 小数的转换
    • 十进制转二进制(*2 取余)
      image.png
    • 二进制转十进制
      image.png

4. 数据在计算机中的存储形式


  • 任何数据在计算机中都是以二进制补码方式存储的,正数三码合一
  • 补码的意义在于将减法转换成加法