原反补码:
补码意义:类似于钟表 5点到7点 可以+2hour 或者 -10hour,也就是说顺时针转2单位或者逆时针转10个单位都是一样的结果。
(5+2)%12=7 或 5+(-10)%12=7
可以说:钟表按(12) 取模 所以只有(0~11) 可以显示
所以这里(+2)和(-10)为一对补码,表示同一个数。
计算机中二进制的显示范围是 (0~2^(n-1))
例如:在8位2进制中 0000 0000 如果显示到 1111 1111 的情况下,再加1 会变为 1 0000 0000,由于8位二进制,所以无法显示,所以开头的 1会被舍弃,整个8位二进制变为 0000 0000 ,所以可以理解为:
8位二进制的模为 2^8
计算机中只有加法器,所以它需要将A-B 转换为 A+(-B)来运算
补码的正负转换规则为:
正数的补码是其原码本身
负数的源码是
①其绝对值的原码
②按位取反
③末位+1
所得到的就是一个负数的补码、
例:-5的补码 1.绝对值5的原码为:0000 0101 2.按位取反 :1111 1010 3.末位加1:1111 1011
补码进行加法运算时,若超出模的范围,自动舍弃。
ps:二进制的最大范围是(127~-128)
也就是 0111 1111 到 1000 0000
为啥-128 不是 1111 1111呢?
1111 1111 咱们保留符号位 再末位-1 再按位取反 就是 1111 1110 →1000 0001 所以这表示的是 -1!!!
曾是某个群的入群题。。。