8421BCD码的加6修正的原因

news/2024/11/9 3:16:40/

首先举出一个例子:8 + 9 

二进制中即:0000 1000

                +    0000 1001

                    (高位) (低位)

                                                     

                      0001 0001 

分析:

1.首先需要明确的是:二进制就像一个爸爸,十进制就像一个妈妈,他们二人生出了一个孩子它叫BCD码,它们一家人对于数学计算都有着自己的一套:爸爸是逢2进1,妈妈是逢10进1,这个BCD码作为前二者孩子它自然有着前两者的部分特点:1.每4位有着二进制的外观;2. 每4位有着十进制的内涵(只能表示出1~9)。即是一个逢10进1的二进制。

因此,需要时刻注意的是BCD码的内涵是十进制,内涵是十进制,内涵是十进制,也就是每4bit位就要看作一个十进制中的数字,遇十就要进位,进位的操作就是在加4bit位来表示新的位(因为BCD码要用4位二进制才可以表示出十以内的数字)。

举个例子,如十进制中9,BCD就是1001共4bit位。而如果接下来9+39=48,因为48>10,所以无论对于十进制来说还是BCD码都要进位,而对于十进制来说只需要进1位放‘4’即可;而对于BCD码来说,需要进4位来表示(因为BCD码要用4位二进制才可以表示出十以内的数字),而接着虽然BCD码是十进制的内涵,但是却用着二进制的一套计算(二进制的外观),而二进制进4位是因为遇到了16才进位,而BCD码却偏要遇10就进位,这就造成了两者相差了6。

上面说到,BCD码要二进制与十进制兼得,既要二进制外观,也要十进制内涵,所以BCD码只需要加上6就可以兼得二进制与十进制了。


http://www.ppmy.cn/news/461860.html

相关文章

关于8421BCD码修正加6问题

8421码可以理解为0到9的四位二进制组成的10进制码,也就是需要逢十进一,;然而4位二进制表示0到15这16个数字,相对于8421码4位只能表示0到9十个数(这里也就是说1010到1111这6个无效码的原因)。8421的逢十进一…

66. 加一。。。。。。

原题链接: 66. 加一 https://leetcode.cn/problems/plus-one/ 完成情况: 解题思路: 这道题题目也多少有点大病,就是说,题目说的你不知所云,简单来说,就是一个数用数组表示之后,进…

6+1

public static void a(int l){ for (int m 0; m < l; m) { //随机生成1-16 Random rnew Random(); int ar.nextInt(16)1; System.out.print("篮球"a"红球"); int[] arrnew int [6]; //随机生成6个数1-33以内&#xff0c;每个数被生成不会第二次生成通过…

指针加1的含义、指针减法运算

指针加1的含义 一、p1实例运行结果 二、*(p1) 与 *p1实例运行结果 三、*p实例运行结果 四、指针减法运算实例运行结果 五、void*六、指针用来做什么&#xff1f; 一、p1 p1 表示地址值加上指针所指类型的 sizeof()&#xff0c;也就是指向了下一个元素。 实例 #include <s…

66加一

给定一个由整数组成的非空数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入…

为什么补码要取反加1呢

为什么补码要取反加1呢 首先&#xff0c;阅读这篇文章的你&#xff0c;肯定是一个在网上已经纠结了很久的读者&#xff0c;因为你查阅了所有你能查到的资料&#xff0c;然后他们都会很耐心的告诉你&#xff0c;补码&#xff1a;就是按位取反&#xff0c;然后加一。准确无误&am…

6-3 字符串 - 3. 字符串联接(复合加赋值) (10分)

C语言标准函数库中包括 strcat 函数&#xff0c;用于字符串联接(复合加赋值)。作为练习&#xff0c;我们自己编写一个功能与之相同的函数。 函数原型 char* StrCat(char *dst, const char *src); 说明&#xff1a;src 为源串的起始地址&#xff0c;dst 为目的串起始地址。函数…

js实现对数组每一项加1的三种方法

前几天被问到对一个数组的每一项加1&#xff0c;要求用三种循环的方式写出&#xff0c;今天把代码贴在这里&#xff0c;一来加深自己印象&#xff0c;二来有需要你们可以拿走呦&#xff0c;写错的地方欢迎指正。微信扣扣&#xff1a;1319672314 第一种&#xff1a;使用for循环 …