CPU 中的加法器,为什么可以连同符号位一起运算?

道哥分享
关注

3. 扩展到十六进制

原理还是相同的:直接把十进制中的 10 换成 16 即可:

每一个数位上包括的数字为 0 到 9,A 到 F;

每一个数位上的数,是它右侧数位的 16 倍;

两个数相加时,相同数位上的数相加之和如果大于等于 16,就向前进 1 位,即:满十六进一;

具体来看就是:

从右数第一个位数上的数字代表多少个 1;

从右数第二个位数上的数字代表多少个 16;

从右数第三个位数上的数字代表多少个 256;

从右数第四个位数上的数字代表多少个 4096;

在十六进制中,需要十六个数字来表示 0 到 15 这些数字,0 到 9 比较好处理,但是从 10 到 15,我们就需要找一些记号来表示,于是人们就想到用 A,B,C,D,E,F 这几个字母来分别表示 10 到 15 这个 6 个数字。

十六进制数据,使用后缀字母 H 来表示,有些场合也可以使用前缀 0x 来表示,本质上没有区别。例如:十六进制数字 1A2BH(或者写作 0x1A2B),每一个数位上的权重如图:

换算成十进制数就是 6699(1 * 4096 + 10 * 256 + 2 * 16 + 11 * 1 = 6699)。

4. 扩展到任意进制

原理仍然相同:直接把十进制中的 10 换成目标进制,例如 5 进制:

每一个数位上包括的数字为 0 到 4;

每一个数位上的数,是它右侧数位的 5 倍;

两个数相加时,相同数位上的数相加之和如果大于等于 5,就向前进 1 位,即:满五进一;

具体来看就是:

从右数第一个位数上的数字代表多少个 1;

从右数第二个位数上的数字代表多少个 5;

从右数第三个位数上的数字代表多少个 25;

从右数第四个位数上的数字代表多少个 125;

再看一个图加深印象:

三、从十进制加法到二进制加法 

1. 十进制加法

这个就不必多说了,规则只有 2 条:

两个数,相同数位上的数字进行相加;

每一个数位上的相加结果,满十进一;

例如:

个位上:4 + 8,结果是 12,但是十进制中没有 12 这个数字,因此向左侧的高位进1,个位就剩下:12 - 10 = 2。

十位上:7 + 2,再加上进位 1,结果是 10,但是十进制中没有 10 这个数字,因此向左侧的高位进1,十位变成:10 - 10 = 0。

百位上:1 加上进位 1,结果是 2。

2. 二进制加法

第 0 位:0 + 0 结果为 0;

第 1 位:1 + 0 结果为 1;

第 2 位:1 + 1 结果为 2,但是二进制中没有 2 这个数字,因此需要向左侧的高位进 1,于是第 2 位上就剩下 2 - 2 = 0。

第 3 位:1 + 1 等于 2,再加上进位 1,结果就是 3,但是二进制中没有 3 这个数字,因此需要向左侧的高位进 1,于是第 3 位上就剩下 3 - 2 = 1。

第 4,5,6,7位计算均是如此。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存