78+45BCD码加法计算过程
因为8加5是大于9,补6
但是十位数又出现大于9的情况,怎么办
chatgpt:
根据BCD码加法规则,需要将BCD码分别拆分为高四位和低四位进行相加,然后再将结果进行进位处理。假设需要计算的两个BCD码分别为78和45,那么相应的BCD码分解如下:
7 8 4 5
0111 1000 0100 0101
接下来,按照BCD码加法规则进行计算:
0111 1000 (78)
+ 0100 0101 (45)
-----------
1100 1101
根据加法规则,从低位到高位相加,得到的结果为1101。但是这个结果不是一个有效的BCD码,因为其十位数位的值为1100,大于了BCD码可以表示的最大值1001,所以需要进行进位处理。具体步骤如下:
将低四位的值1101转换为相应的十进制数,即13。
对这个数进行进位处理,将其拆分为个位和十位,即3和1,并将个位的值加入到原来的结果中。
将十位的值1加入到高四位中,得到最终的结果1000 1001,即123的BCD码表示。
因此,78和45的BCD码相加的结果为123的BCD码表示。
那么如果你是2位,就溢出了,保留mod 100的结果
如果有一个进位的变量,将其设置为1
如果有3位,那么最高位+1
上图就是加权系数求和的方法,就是把二进制数各位的权值乘上各位的系数,再加起来就是十进制数。来看一个简单的例子
100.01是一个二进制数,个位的权值和系数分别是和1,十位权值和系数分别是
和0,百位权值和系数分别是
和1,小数第一位权值和系数分别是
和0,小数第二位权值和系数分别是
和1
所以根据加权系数求和的方法:将各位的系数和权值相乘然后相加,最后得到十进制的结果
八进制和十六进制的方法相同,只是八进制的权为,十六进制的权为
,下面再举两个例子