本文目录
1 计算机运算与取模计算
计算机处理器操作的是二进制数,由于有位数限制,相当于数学中的取模计算,即在一定数值范围内进行计算,超出部分会被取模操作抵消。
以8 bit的有符号byte类型为例:0000 0000
最高位(第8位)为符号位,其余7位为数值位。
7位数值位,限定了数值范围,相当于设定模为 2^7=128,即取值范围为[0, 127]之间。
例如:
0 mod 128 = 0
127 mod 128 = 127
128 mod 128 = 0
129 mod 128 = 1
2 数值表示
类比时钟来理解取模运算:每一个数值,对应一个刻度位置,一个刻度位置可对应多个数值。
例如:-64、64、192都对应相同位置,即 -64 mod 128 = 64 mod 128 = 192 mod 128
但由于模值为128,因此,仅-64和64是有效范围内的合法数值。
例如,+16 对应二进制 0001 0000;-16 对应二进制1001 0000。

3 补码
在取模运算中,每个数值对应一个刻度位置,同一个刻度位置对应无限个数值。
例如,-16 mod 128 = 112 mod 128,即,在取模运算中,一个负数可以由一个正数来表示,它们的刻度位置是相等的。

最低0.47元/天 解锁文章
1260

被折叠的 条评论
为什么被折叠?



