一分钟教会“原码、反码、补码、移码”(小孩也能听懂)
大家好,欢迎来到“一分钟教会”系列。今天在讲之前,先带大家了解《真值》。为什么呢?因为我们今天讲的东西都是基于“真值”来说的。
大家好,欢迎来到“一分钟教会”系列。今天在讲之前,先带大家了解《真值》。为什么呢?因为我们今天讲的东西都是基于“真值”来说的。
一.真值是什么
(个人理解) 简单来说,就是“人一眼就能看懂的数字”
(定义)真值指数学中的实际数值,包括正负。例如,+5 和 -5 是两个不同的真值。
+5和-5,对吧,我们一眼就能看出来这个数值是正的还是负的,以及它的大小为多少。
所以就很简单。
你们应该都知道5的二进制为多少吧,是101.如果不熟的,可以自己慢慢推导。所谓的“二进制”就是满2进1.
二.原码是啥?
首先,说一下真值的结构是什么样子的?
符号位,设有两个值,一个是0表示正数,1表示负数。
- 原码直接反映真值的符号和绝对值。
最高位为符号位(0正1负),其余位表示绝对值的二进制形式。
例如:
- 真值 +5 的原码:
0 0000101(你看,前面的0,就是代表+5是正数)
- 真值 -5 的原码:
1 0000101
- 优点:直观,与人类书写负数的习惯一致。
- 缺点:加减运算需处理符号位,导致硬件设计复杂。(因为我们脑子转的快,所以我们很快算出正负数相加,但是计算机不一样啊,它需要严谨,需要判断每个数字的符号和大小,所以这样就很复杂。)
三.简单的反码
反码,真的就是字面意思啊,把数字反过来。在计算机中,它只采用二进制。所以反码把数值位中的0换成1,1换成0就可以了。
我特地把变化的部分,用直线穿起来了。是不是很贴心?
四.容易的补码
补码,也真就字面意思,在反码的基础上补个1.ok,我来展示一下。
直接在后面加个1,就结束了,所以不要想的复杂。
五.非常容易的“移码”
移码,这个字面意思不好猜,因为它只改变符号位,前面说了,真值分为符号位和数值位、小数点。这个移码只需要改变符号位就可以了。(即正数变负数,负数变正数)
移码是基于:“补码”的。 每个码的操作都是基于上一个码,所以很简单。
结束。总结一下,原码、反码、补码、移码都是基于“真值”的。那么真值是什么?真值就是人一眼能知道正负和大小的值。四个码的操作都是用真值来的。
原码就是带有符号的二进制位。
反码就是将数值位的数字都取反。
补码就是将反码的值加1.
移码就是将补码的符号位取反。
更多推荐
所有评论(0)