P77、有符号数和无符号数规则理解
计算机并不知道正负,数据都是有宽度的。每个数据代表什么意思呢?
0 1 0 1 0 1 0 1 没有意义的。
规则:
就好像我要解析一个音频。因为MP3 有一个编码规则,需要解码才能过运行。。
规则,二进制解码增加一个规则
无符号数规则
10011010
十六进制 1000 8 0x9a
十进制 154 忘记十进制。
你这个数字是什么那就是什么
有符号数规则
最高位是符号位: 1负数 0正数
10011010
如何转换??
那就是原码反码补码
P88、原码反码补码理解
编码规则:
有符号数的编码规则。
原码: 最高位符号位,对齐它的为进行本身绝对值即可
反码: 正数,反码和原码相同。
负数,符号位一定是1,其余位对原码取反。
补码: 正数,补码和原码相同。
负数,符号位一定是1,反码要+1。
测试:
1
原码:00000001
反码:00000001 1正数,反码与原码相同
补码:00000001 1正数,反码与原码相同
-1 负数
原码:1000 0001 00000001 最高位是1 10000001
反码:1111 1110 -1 00000001 最高位是1 10000001 其它位取反 11111110
补码:1111 1111 -1 00000001 最高位是1 10000001 反码要+1。 1111 1111
-7
原码:1000 0001
反码:1111 1000
补码:1111 1001
ff 1111 1111 只是一个符号位而已。
如果看到一个数字,二进制的,需要了解它的符号数还是无符号数。
二进制:
3+5
0 1 2 3 4 5
0 1 10 11 100 101
11
101
——————–
1000