讲简单一点,通俗易懂一点,记住就行了,也不用刻意去理解的太深。
讲那么多不实际,还不如直接记住几个例子。
原码和补码就是计算机在存储带符号的数的时候用来存储的方式,
或许有人会问:为啥不直接用正负号啊,搞这么多东西干什么。
但这个时候,我们应该理解,计算机储存的过程,是机器语言发挥作用的过程。
机器语言是啥? 这是最低级的语言,这么低级的语言是无法理解正负号这种人类能看懂的东西的,
机器就是机器。
我们先来举个例子来看看原码。
原码:
为了不变的那么复杂,规定这是一个八位的带符号数。
先从最特殊的0入手。
0的补码有两个,
一个是
00000000(+0)
一个是
10000000(-0)
这样就能想到,原码的表示范围-127-127
而对于同一绝对值的两个数,:
表示就是后七位数字完全相等,第一位数字正的为1,负的为0.
正 0xxxxxxx
负1xxxxxxx
补码,
先来看一下补码的范围
-128-127
立马和原码对比,
就可以猜想到0的补码只有一个,
同时,
给出原码和补码的交换规律。
正数的原码
和补码,
数值上面是一致的。
而负数情况就不一样了,
负数原码转为补码,
::::
符号位不变(第一位不变)
其他位置取反,
最低位加一。
如10000000是-128的补码,
1111111是-1的补码