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 取余)
- 二进制转十进制
- 十进制转二进制(*2 取余)
4. 数据在计算机中的存储形式
- 任何数据在计算机中都是以二进制补码方式存储的,正数三码合一
- 补码的意义在于将减法转换成加法