# 有符号整数的原反补码和无符号整数的 无码

无符号整数就是普通的二进制数
有符号整数就不一样了,分为原码、反码、补码
原码为符号位 + 普通二进制的数值位

# 对于负数,即符号位为 1

反码为原码数值位取反
补码为反码加一
反码就纯纯工具人跳板咯
甚至可以不需要这个工具人!
手算可以将从右往左第一个一左侧所有数值为取反
这个算一下就好理解了
不像补码的原理,涉及数论的群论
之前学离散数学还没学到群论,加上自己以后应该不会学密码学,就不踩这个坑了

# 对于正数

啥都不变

# 运算

总之,这样一切就统一了
加法直接加,溢出的位直接舍
减法就减去这个数的相反数
相反数也好处理,方法也一样
全部位取反后加一

# 特性

n+1 bit合法表示范围最大数最小数0
原码[(2n1)-(2^n-1),2n12^n-1]0111...1111111...1110000...000 或 1000...000
反码[(2n1)-(2^n-1),2n12^n-1]0111...1111000...0000000...000 或 1000...000
补码[2n-2^n,2n12^n-1]0111...1111000...0000000...000
无符号整数[0,22n12*2^n-1]1111...1110000...0000000...000

# 移码

补码的符号位取反
这样变为无符号整数一样的了
没具体讲,以后课讲了再补一下