Hero Circle Shape
Hero Moon Shape
Hero Right Shape
比特派钱包手机版|bcd

比特派钱包手机版|bcd

  • 作者: 比特派钱包手机版
  • 2024-03-07 17:16:29

BCD码是什么 - 知乎

BCD码是什么 - 知乎切换模式写文章登录/注册BCD码是什么且听风吟 今天给大家穿插讲一期常用的数字编码形式----BCD码。可能我们在学校经常使用二进制和十六进制的数字表达形式。然而大多数情况下我们都是需要和十进制数进行转化来进行数字的表达,因为我们社会普遍习惯使用十进制。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。 (一) 那么是什么BCD码呢?BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。(二)如何用bcd码表示十进制数?首先,如果我们想表达0~9这几个数字,那么我们只需要使用一个四位的BCD码就足够了。细心的朋友会发现当数字大于九时,一个四位的BCD码不能够表达十进制的两位数,因此当数字大于九时,我们需要用八位BCD码来表示。高位只需要逢九进一即可。(三)BCD码如果进行加法运算?当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正。相加范围在九以内都不需要进行修正:如下图相加超过九时:发布于 2020-07-13 12:03BCD码​赞同 41​​7 条评论​分享​喜欢​收藏​申请

BCD码_百度百科

_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心BCD码播报讨论上传视频二进制的数字编码形式收藏查看我的收藏0有用+10本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。中文名二进码十进数外文名Binary-Coded Decimal‎别    名二-十进制代码简    称BCD码类    别权码和无权码类    型有权BCD码有8421码、2421码目录1简介2类别3编码方式4举例简介播报编辑BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。8421BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。5421BCD码和2421BCD码同为有权码,它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。余3码是由8421码加3后形成的,是一种“对9的自补码”。余3循环码是一种变权码,每一位的在不同代码中并不代表固定的数值,主要特点是相邻的两个代码之间仅有一位的状态不同。格雷码(也称循环码)是由贝尔实验室的FrankGray在1940年提出的,用于PCM方法传送信号时防止出错。格雷码是一个数列集合,它是无权码,它的两个相邻代码之间仅有一位取值不同。余3循环码是取4位格雷码中的十个代码组成的,它同样具相邻性的特点 [1]。类别播报编辑84218421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。5421和24215421 BCD码和2421 BCD码为有权BCD码,它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。这两种有权BCD码中,有的十进制数码存在两种加权方法,例如,5421 BCD码中的数码5,既可以用1000表示,也可以用0101表示;2421 BCD码中的数码6,既可以用1100表示, 也可以用0110表示。这说明5421 BCD码和2421 BCD码的编码方案都不是惟一的,表1-2只列出了一种编码方案。上表中2421 BCD码的10个数码中,0和9、1和8、2和7、3和6、4和5的代码对应位恰好一个是0时,另一个就是1。就称0和9、1和8互为反码。余3 码余3码是8421 BCD码的每个码组加3(0011)形成的。常用于BCD码的运算电路中。余3循环码余3循环码是无权码,即每个编码中的1和0没有确切的权值,整个编码直接代表一个数值。主要优点是相邻编码只有一位变化,避免了过渡码产生的“噪声”。Gray码Gray码(格雷码)也称循环码,在一组数的编码中,若任意两个相邻数的代码只有一位二进制数不同 [2]。Gray码的编码方案有多种,典型的Gray码如下表所示。从表中看出,这种代码除了具有单位距离码的特点外,还有一个特点就是具有反射特性,即按表中所示的对称轴为界,除最高位互补反射外,其余低位数沿对称轴镜像对称。利用这一反射特性可以方便地构成位数不同的Gray码。编码方式播报编辑最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在称之为“8421码”(日常所说的BCD码大都是指8421BCD码形式)。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:有权BCD码,如:8421(最常用)、2421、5421…无权BCD码,如:余3码、格雷码…(注意:格雷码并不是BCD码)以下为三种常见的BCD编码的比较。十进数 8421-BCD码 余3-BCD码 2421-A码(M10) DCBA C3C2C1C0 a3a2a1a00 - 0 0 0 0 / 0 0 1 1 / 0 0 0 01 - 0 0 0 1 / 0 1 0 0 / 0 0 0 12 - 0 0 1 0 / 0 1 0 1 / 0 0 1 03 - 0 0 1 1 / 0 1 1 0 / 0 0 1 14 - 0 1 0 0 / 0 1 1 1 / 0 1 0 05 - 0 1 0 1 / 1 0 0 0 / 1 0 1 16 - 0 1 1 0 / 1 0 0 1 / 1 1 0 07 - 0 1 1 1 / 1 0 1 0 / 1 1 0 18 - 1 0 0 0 / 1 0 1 1 / 1 1 1 09 - 1 0 0 1 / 1 1 0 0 / 1 1 1 1常用BCD码十进制数8421码5421码2421码余3码余3循环码000000000000000110010100010001000101000110200100010001001010111300110011001101100101401000100010001110100501011000101110001100601101001110010011101701111010110110101111810001011111010111110910011100111111001010举例播报编辑某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为__C__。A.00000001 / 00000011 / 00000111  B. 00000011 / 00000001 / 00000111C.00000010 / 00000011 / 00000100  D. 00000011 / 00000001 / 00001001解:(1)11101010转换为十进制:234(2)按百位、十位和个位的顺序表示,应为__C__。附注:压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.BCD码的运算法则BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。下面举例说明。【例 1.3】 需要修正 BCD码运算值的举例。(1) 计算 5+8;(2) 计算 8+8解:(1) 将 5 和 8 以 8421 BCD输入机器,则运算如下:0 1 0 1+) 1 0 0 01 1 0 1 结果大于 9+) 0 1 1 0 加 6 修正1 0 0 1 1 即13 的 BCD码结果是 0011,即十进制数3,还产生了进位。5+8=13,结论正确。(2)将8以8421 BCD输入机器,则运算如下:1 0 0 0+)1 0 0 01 0 0 0 0产生进位+)0 1 1 0 加6修正1 0 1 1 0 16的BCD码结果是0110,即十进制的6,而且产生进位。8+8=16,结论正确。微机原理代码: (AL=BCD 5,BL=BCD 8) 设AH=0,则ADD AL,BLAAA结果为 AX=0103H,表示非压缩十进制数,CF=1,AF=1,AH=1,AL=3使用AAA指令,可以不用屏蔽高半字节,只要在相加后立即执行AAA指令,便能在AX中得到一个正确的非压缩十进制数新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

BCD码详解-CSDN博客

>

BCD码详解-CSDN博客

BCD码详解

959y

已于 2022-07-21 15:26:10 修改

阅读量5.2w

收藏

113

点赞数

22

分类专栏:

计算机组成

文章标签:

计算机组成

于 2020-07-31 19:30:51 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_43141726/article/details/107720049

版权

计算机组成

专栏收录该内容

24 篇文章

9 订阅

订阅专栏

BCD码的种类

BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。

8421 BCD码 8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。 5421 BCD码和2421 BCD码 5421 BCD码和2421 BCD码为有权BCD码,它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。这两种有权BCD码中,有的十进制数码存在两种加权方法,例如,5421 BCD码中的数码5,既可以用1000表示,也可以用0101表示;2421BCD码中的数码6,既可以用1100表示,也可以用0110表示。这说明5421BCD码和2421 BCD码的编码方案都不是惟一的,表1-2只列出了一种编码方案。

上表中2421 BCD码的10个数码中,0和9、1和8、2和7、3和6、4和5的代码对应位恰好一个是0时,另一个就是1。就称0和9、1和8互为反码。

余3 码   余3码是8421 BCD码的每个码组加3(0011)形成的。常用于BCD码的运算电路中。 Gray码(格雷码) Gray码也称循环码,其最基本的特性是任何相邻的两组代码中,仅有一位数码不同,因而又叫单位距离码。

Gray码的编码方案有多种,典型的Gray码如下表所示。从表中看出,这种代码除了具有单位距离码的特点外,还有一个特点就是具有反射特性,即按表中所示的对称轴为界,除最高位互补反射外,其余低位数沿对称轴镜像对称。利用这一反射特性可以方便地构成位数不同的Gray码。

BCD码的格式

计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。

所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:

_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。

组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是10000010

BCD码的运算法则

由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用3、BCD码求38+49。

解决的办法是对二进制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则:

(1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。

(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正.

(3)低位修正结果使高位大于9时,高位进行加6修正

8421 BCD码举例说明

BCD码是一一对应的

如:十进制的123 用BCD表示为:0001 0010 0011

因为:十进制的 1 用二进制表示是 0001

十进制的 2 用二进制表示是 0010

十进制的 3 用二进制表示是 0011

BCD码和二进制的区别:123的二进制应该用短除法求得1111011由此可见,BCD码只是机械地用二进制表示十进制的每一位

压缩与非压缩

区别就是BCD码是8位的,浪费4位用0填充,压缩的BCD码是4位的,没有浪费

由于1字节有8bit(8个0或1)如果用一字节存储4位BCD码(其余补0)就是非压缩

如十进制的123:

非压缩码 00000001 00000010 00000011

压缩码 0001 0010 0011

C语言压缩bcd码

#include

#include

#include

/*

* 字符串转成bcd码,这个是正好偶数个数据的时候,如果是奇数个数据则分左靠还是右靠压缩BCD码

*/

intasc_to_bcd(char * dest,const char *src)

{

unsigned char temp;

while(*src !='\0')

{

temp = *src;

*dest |=((temp&0xf)<<4);

src++;

temp = *src;

*dest |= (temp&0xf);

src++;

dest++;

}

return 0;

}

intasc_to_bcd_right(char *dest,const char *src,int src_len)

{

unsigned char temp;

if((src_len %2) !=0)

{

*dest &= 0;

temp = *src;

*dest |= (temp&0xf);

src++;

dest++;

}

asc_to_bcd(dest,src);

return 0;

}

intasc_to_bcd_left(char *dest,const char *src,int src_len)

{

unsigned char temp;

if((src_len %2) !=0)

{

dest[src_len-1] &=0;

}

asc_to_bcd(dest,src);

return 0;

}

voidprint_hex(char * bcd,int len)

{

int i=0;

for(i=0;i

{

int n = 8;

while(n--){

if((bcd[i] &(0x1<

printf("0");

else

printf("1");

}

putchar('\n');

}

}

intbcd_to_asc(char *dest,const char *src,int src_len)

{

unsigned char temp;

char *t = dest;

while(src_len--)

{

*t |= ((*src&0xf0)>>4);

*t++ |= 0x30;

*t |= (*src&0xf);

*t++ |= 0x30;

src++;

}

return 0;

}

intleft_bcd_to_asc(char *dest,const char * src,int src_len)

{

bcd_to_asc(dest,src,src_len);

dest[src_len*2 -1] = '\0';

return 0;

}

intright_bcd_to_asc(char *dest,const char * src,int src_len)

{

bcd_to_asc(dest,src,src_len);

memmove(dest,dest+1,src_len*2-1);

dest[src_len*2-1] = '\0';

return 0;

}

int main(void)

{

char str[100];

char *str1 = "1234567";

int str_len = strlen(str1);

int bcd_len = (str_len+1)/2;

char *bcd = (char *)malloc(bcd_len);

printf("str_len = %d\n",str_len);

printf("bcd_len = %d\n",bcd_len);

memset(bcd,0,bcd_len);

memset(str,0,100);

#if 0

printf("右靠\n");

asc_to_bcd_right(bcd,str1,str_len);

print_hex(bcd,bcd_len);

right_bcd_to_asc(str,bcd,bcd_len);

printf("str = %s\n",str);

#endif

#if 1

printf("左靠\n");

asc_to_bcd_left(bcd,str1,str_len);

print_hex(bcd,bcd_len);

//memset(str,0,100);

left_bcd_to_asc(str,bcd,bcd_len);

printf("str = %s\n",str);

#endif

return 0;

}

关注博主即可阅读全文

优惠劵

959y

关注

关注

22

点赞

113

收藏

觉得还不错?

一键收藏

知道了

0

评论

BCD码详解

BCD码的种类BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。8421 BCD码8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。5421 BCD码和2421 BCD码5421 BCD码和24

复制链接

扫一扫

专栏目录

BCD.rar_BCD码 转换

09-19

生成BCD码。 Name: BIN3toBCD4 Func:2字节二进制整数--->>BCD码四字节转换(Comped BCD) Input: 3进制数人低字节到高字节存放在内部RAM50H,51H,52h单元中 Output: BCD码人低位到高位分别存放在内部RAM53H,54H,55H,56H单元中 USE: R7-R0, 56H-50H

计算机组成原理之BCD码

02-06

计算机组成原理之BCD码

参与评论

您还未登录,请先

登录

后发表或查看评论

一文深入了解BCD码

weixin_40103877的博客

04-24

2741

什么是BCD码?

BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。

BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码,其中最常使用的为8421码,下面所述的都是基于8421码。

BCD码的优点

相对浮点数,采样BCD码可保持数据精度,又可以免去CPU计算浮点所消耗的时间。

相对浮

计算机组成原理-BCD码(余三码 2421码 8421码)和格雷码和余三循环码

最新发布

llovewuzhengzi的博客

01-07

567

5对应的2421码可以为0101或1011,所以为了避免这种情况,规定大于等于5第一位都为1。余三循环码就是余三码通过格雷码的异或运算,所得到的一系列变权码。四个二进制为可以表示一个十进制位,还有几个冗余的情况。9+9等于18,二进制数也不在范围内,也需加6。相加的结果如果落到1010~10010都需加6。即四个二进制位对应的值必须为0~9。每个数码位上的值乘以权值。

BCD编码及转码

老张的便利贴

10-17

5330

简单介绍

摘取一段百度百科介绍:

BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。

常见的BCD码又分8421码、5421码、2421码、余3码、余3循环码。

个人理解BCD码:将十进制数压缩存储。

拿8421(四位,每位为1代表十进制数。1110等于8+4+2+0 = 14)BC...

二进制转BCD码原理及verilog实现

小菜鸡

01-18

3万+

一、BCD码概念

BCD码(Binary-Coded Decimal‎),利用四个2进制位储存一个10进制的数,如下表所示。本文所讨论的问题均以8421BCD码为例,十进制的0~9分别用0000~1001来表示。

十进制数23,可表示为0010_0011,十进制数129,可表示为0001_0010_1001。

即分别对个位、十位、百位求对应的BCD码。

​二、二进制数到BCD码的转换

先根据输入不同位数的二进制数,求对应的BCD码

假设输入1位二进制数1,则对应的BCD码为0001,对应

fds.rar_bcd 码_fds

09-21

浮点数保存代码,能区别代码类别,代码为压缩BCD码

BCD码以及各进制之间的相互转换

Samuel_a的博客

09-08

5万+

BCD码的学习以及进制之间的换算

【科普】BCD码

qq_40130613的博客

11-30

5291

BCD码就是用4个二进制位表示一个十进制数

什么是BCD码,BCD码的表示

weixin_45317857的博客

06-20

3052

BCD码种类和原理

什么是BCD码?BCD码编码规则

热门推荐

xkdlzy的专栏

10-24

7万+

BCD码

BCD码 基础知识

04-18

介绍BCD码的基础知识,比较全面的介绍了BCD码的原理和在程序中的应用等。。

yangli.rar_BCD码

09-24

超全的汇编配套程序样例:1-流水灯14-倒计时演示16-BCD码演示7-按键9-继电器等等

BCD码转ASCII码的汇编程序

11-21

通过子程序段间调用实现BCD码转ASCII码,经典汇编实例

bcd.zip_单片机 BCD码

09-19

星研版 单片机实验 BCD码双字节乘法 小键盘输入

数据寻址方式(10种)

959

06-14

1万+

1.隐含寻址

在指令中隐含着操作数的地址。

如单地址的指令格式,就不是明显地在地址字段中指出第二操作数的地址,而是规定累加器ACC作为第二操作数,指令格式明显指出的仅是第一操作数的地址。因此,累加器ACC对单地址指令格式来说是隐含地址。

隐含寻址的优点是有利于缩短指令字长;缺点是需增加硬件。

2.立即(数)寻址

这种类型的指针的地址字段指出的不是操作数的地址么事操作数本身,又称为立即数。数据是用补码形式存放的。

OP

#(立即寻址特征)

A操作数本身

立即寻址的优点是指令在执行阶段不访问主存,

计算机组成原理常见英文缩写

959

05-10

9402

ALU:Arithmetic Logic Unit算术逻辑单元

CU:Control Unit控制单元

CPU:Central Processing Unit中央处理器

I/O:Input/Output Equipment输入/输出设备

ACC:Accumulator累加器

PC:Programmer Counter程序计数器

PSW:Programmer Status Word程序状态字

MQ:Multipiler-Quotient register乘商寄存器

14个指令的缩写

 CPU、PC、IR、CU

什么是8421bcd 码

07-17

8421BCD码是一种二进制编码方式,全称"8-4-2-1二进制编码"(Binary-Coded Decimal)。它是一种将十进制数转换成二进制形式的编码方式。

在8421BCD码中,每一位二进制数都表示一个十进制数的一个位数。其中,最高位为8,次高位为4,次低位为2,最低位为1。通过将十进制数的每一位都转换成对应的4位二进制码,可以将整个十进制数转换为8421BCD码。

例如,十进制数12的8421BCD码为0001 0010,其中"0001"表示十位上的数字1,"0010"表示个位上的数字2。

8421BCD码常用于数字显示、计算机输入输出、芯片设计等领域,它可以直观地表示十进制数,并且方便进行数字的计算和处理。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

959y

CSDN认证博客专家

CSDN认证企业博客

码龄6年

暂无认证

1166

原创

2616

周排名

1184

总排名

168万+

访问

等级

1万+

积分

3万+

粉丝

1053

获赞

196

评论

4425

收藏

私信

关注

热门文章

伽马函数

297875

springcloud阿里巴巴五大组件

58261

BCD码详解

52112

二次型化为标准型

44347

判断极值_拐点的三个充要条件以及一个必要

39361

分类专栏

SpringBoot 源码分析

9篇

SpringCloud 源码分析

25篇

SpringBoot 高级

28篇

OLAP

9篇

hadoop大数据

99篇

Doris

2篇

react

14篇

Spring 源码分析

37篇

架构设计

39篇

网络

33篇

Spring Aop

10篇

Spring

48篇

kafka

17篇

中间件

33篇

RocketMq 源码分析

15篇

RocketMq 基础

24篇

K8S

14篇

flink 调优

3篇

电商实时数仓

3篇

hbase

4篇

flink java

24篇

vue

12篇

hive

6篇

javascript

12篇

计算机组成

24篇

系统设计原则

22篇

并发编程 Juc 和优化

33篇

interview

114篇

微服务

28篇

webpack

2篇

RabbitMq基于SpringBoot

4篇

数据仓库

14篇

hudi

4篇

Nacos 源码解析

12篇

netty

23篇

netty 源码解析

18篇

Eureka 源码解析

8篇

dubbo 源码分析

3篇

IO

24篇

业务逻辑

14篇

mybats 源码分析

15篇

mybatis

20篇

AQS

12篇

数据治理

1篇

SpringMvc 源码分析

15篇

flink scala

7篇

ClickHouse

3篇

CDC

2篇

Spring Tx

9篇

jvm

33篇

Sql优化

14篇

rabbitmq

2篇

Pulsar

4篇

Tomcat 源码分析

15篇

软件工程

5篇

操作系统os

22篇

cv

6篇

SpringBoot 基础

21篇

Shiro 安全框架

2篇

Spark

17篇

Sharding Sphere

2篇

Spark 源码

2篇

Sentinel 分析

1篇

Zookeeper 分析

2篇

DDD

2篇

SpringMvc

10篇

Spring 源码分析之工具类

8篇

Collection和Map的解析

9篇

Spring Secuity

6篇

Spring Data Jpa

3篇

云原生

6篇

Leecode

3篇

javaweb

8篇

机器学习

10篇

网络软考

11篇

考研

36篇

设计模式

26篇

数据结构/算法

20篇

推荐系统

6篇

linux

30篇

java

97篇

MongoDB

11篇

web渗透

7篇

redis

26篇

mysql

34篇

kotlin

15篇

python

12篇

golang

17篇

shell脚本

8篇

docker

12篇

Ansible自动化运维

4篇

Scala

12篇

华为FusionStorage存储

11篇

云计算

16篇

openstack

11篇

saltstack自动化运维

10篇

zabbix

4篇

nginx

10篇

最新评论

Spring的BeanFactoryPostProcessor和BeanPostProcessor

May_HanJing:

BeanFactoryPostProcessor、InstantiationAwareBeanPostProcessor、BeanPostProcessor 按照这个这个顺序加载

1.BeanFactoryPostProcessor的执行时机是Bean的实例化过程之前,它本质上管理的BeanFactory(大部分情况下是ConfigurableListableBeanFactory容器),此时该容器存放的还是未实例化的Bean对象,也就是BeanDefinition对象,通过获取对应的BeanDefinition的进行属性修改。它允许修改容器中的 Bean 定义,可以添加、修改或删除 Bean 的属性值,甚至可以完全替换 Bean 的定义。通过实现这个接口,可以影响所有 Bean 的创建过程。

2.InstantiationAwareBeanPostProcessor作用于Bean的实例化前后(before早前,after在后),这个时机已经在内存中开辟了对应的内存地址,但是还没有进行属性的赋值,也就是在populaBean方法之前执行。它允许在 Bean 实例化过程中对 Bean 进行自定义处理,例如处理 Bean 的依赖关系、注入特定的属性或者在 Bean 初始化之前做一些额外的操作。通常用于对 Bean 实例化过程进行增强或定制。

3.BeanPostProcessor 作用于Bean的初始化前后(before和after两个方法或者说是阶段),对Bean做最后的增强处理,AOP就发生这个阶段,因为这个阶段会创建对应的代理对象。

[Doris] Doris架构原理 (一)

CSDN-Ada助手:

什么是分布式架构?

[Doris] Doris架构原理 (一)

CSDN-Ada助手:

哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)提升标题与正文的相关性;(2)使用更多的站内链接。

CMS 和G1 的区别 [24]

皎月摘星:

矛盾,标记清理的标记阶段只是和标记清除一样,不代表是一个意思,这个是两个算不同的算法

移位运算

m0_74874986:

这里右移丢1,都从-26变成-13了为什么叫影响精度,不叫结果出错

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

[SpringCloud] OpenFeign核心架构原理 (三)

[SpringCloud] OpenFeign核心架构原理 (二)

[SpringCloud] OpenFeign核心架构原理 (一)

2024年7篇

2023年97篇

2022年300篇

2021年328篇

2020年408篇

2019年35篇

目录

目录

分类专栏

SpringBoot 源码分析

9篇

SpringCloud 源码分析

25篇

SpringBoot 高级

28篇

OLAP

9篇

hadoop大数据

99篇

Doris

2篇

react

14篇

Spring 源码分析

37篇

架构设计

39篇

网络

33篇

Spring Aop

10篇

Spring

48篇

kafka

17篇

中间件

33篇

RocketMq 源码分析

15篇

RocketMq 基础

24篇

K8S

14篇

flink 调优

3篇

电商实时数仓

3篇

hbase

4篇

flink java

24篇

vue

12篇

hive

6篇

javascript

12篇

计算机组成

24篇

系统设计原则

22篇

并发编程 Juc 和优化

33篇

interview

114篇

微服务

28篇

webpack

2篇

RabbitMq基于SpringBoot

4篇

数据仓库

14篇

hudi

4篇

Nacos 源码解析

12篇

netty

23篇

netty 源码解析

18篇

Eureka 源码解析

8篇

dubbo 源码分析

3篇

IO

24篇

业务逻辑

14篇

mybats 源码分析

15篇

mybatis

20篇

AQS

12篇

数据治理

1篇

SpringMvc 源码分析

15篇

flink scala

7篇

ClickHouse

3篇

CDC

2篇

Spring Tx

9篇

jvm

33篇

Sql优化

14篇

rabbitmq

2篇

Pulsar

4篇

Tomcat 源码分析

15篇

软件工程

5篇

操作系统os

22篇

cv

6篇

SpringBoot 基础

21篇

Shiro 安全框架

2篇

Spark

17篇

Sharding Sphere

2篇

Spark 源码

2篇

Sentinel 分析

1篇

Zookeeper 分析

2篇

DDD

2篇

SpringMvc

10篇

Spring 源码分析之工具类

8篇

Collection和Map的解析

9篇

Spring Secuity

6篇

Spring Data Jpa

3篇

云原生

6篇

Leecode

3篇

javaweb

8篇

机器学习

10篇

网络软考

11篇

考研

36篇

设计模式

26篇

数据结构/算法

20篇

推荐系统

6篇

linux

30篇

java

97篇

MongoDB

11篇

web渗透

7篇

redis

26篇

mysql

34篇

kotlin

15篇

python

12篇

golang

17篇

shell脚本

8篇

docker

12篇

Ansible自动化运维

4篇

Scala

12篇

华为FusionStorage存储

11篇

云计算

16篇

openstack

11篇

saltstack自动化运维

10篇

zabbix

4篇

nginx

10篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

BCD编码理解 - 知乎

BCD编码理解 - 知乎切换模式写文章登录/注册BCD编码理解ReggieDing系统架构师BCD编码概念Binary-Coded-Decimal,即二进制编码表示的十进制数字。从二进制编码和十进制数字两个概念入手说明。1)二进制编码比如:10001,这一串就是二进制的编码,不是0就是1。那么它表示数字0~9,就是0000~10001。2)十进制数字很简单0~9就是10进制的所有数字。那么BCD编码就可以理解为用了二进制编码后表示的十进制数字。比如:比如十进制的数字:123。BCD的表示形式:0001 0010 0011。总共12bit = 1.5个字节。如果采用其他的表示方式,整形数字:int i = 123,那么int是4个字节数字,在内存表示形式:0x0000007b = 1011 0111 0000 0000 0000 0000 0000 0000。字符形式表示:char s[] = "123";即s[0] = '1',s[1] = '2' ,s[2] = '3'。那么在内存中表示形式:字符1就是49。在内存中一个字节表示:49 :0001 0011 50 :0010 0011 51:0011 0011 组合字符形式“123”,就是0001 0011 0010 0011 0011 0011 。共3个字节。可以看出来BCD 编码其实就是一种压缩算法。减少了数字在内存中的占有量。发布于 2017-08-10 09:54压缩算法​赞同 14​​3 条评论​分享​喜欢​收藏​申请

什么是BCD码?BCD码编码规则-CSDN博客

>

什么是BCD码?BCD码编码规则-CSDN博客

什么是BCD码?BCD码编码规则

最新推荐文章于 2023-06-20 15:26:31 发布

xkdlzy

最新推荐文章于 2023-06-20 15:26:31 发布

阅读量7.6w

收藏

127

点赞数

48

文章标签:

1024程序员节

本文内容来自网络,仅供自己学习与参考,方便以后查看。

本文链接:https://blog.csdn.net/xkdlzy/article/details/109012501

版权

BCD码的英文全称是Binary-Coded Decimal‎,简称BCD,按字面解释是二进制十进制代码,是一种二进制的数字编码形式。我们平常用的十进制,每一位分别用二进制来保存,这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。   由于十进制数共有0、1、2、……、9十个数码,因此至少需要4位二进制码来表示1位十进制数。4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/(16-10)!约等于2.9乘以10的10次方种方案。   常用BCD编码方式   最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在中国大陆称之为“8421码”。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:   有权BCD码,如:8421(最常用)、2421、5421…    无权BCD码,如:余3码、格雷码…    以下为三种常见的BCD编码的比较。   十进数    8421-BCD码       余3-BCD码            2421-A码 

  (M10)       D C B A       C3 C2 C1 C0         a3 a2 a1 a0

  0             0 0 0 0        0 0 1 1         0 0 0 0    1              0 0 0 1        0 1 0 0        0 0 0 1    2             0 0 1 0      0 1 0 1         0 0 1 0    3            0 0 1 1        0 1 1 0          0 0 1 1    4            0 1 0 0      0 1 1 1           0 1 0 0    5            0 1 0 1        1 0 0 0         0 1 0 1    6            0 1 1 0      1 0 0 1          0 1 1 0    7            0 1 1 1        1 0 1 0           0 1 1 1    8            1 0 0 0      1 0 1 1          1 1 1 0    9             1 0 0 1      1 1 0 0          1 1 1 1    常用BCD码   十进制数          8421码           5421码             2421码             余3码             余3循环码      0                      0000               0000                0000               0011              0010   1                       0001                0001                0001              0100              0110   2                       0010                0010                0010               0101              0111   3                       0011                0011                0011              0110              0101   4                       0100                0100                0100              0111              0100   5                       0101                1000                1011               1000              1100   6                       0110                1001                1100               1001              1101   7                       0111                1010                1101               1010              1111   8                       1000                1011                1110               1011              1110   9                       1001                1100                1111               1100              1010   -----------------------   特点:   8421编码直观,好理解。   5421码和2421码中大于5的数字都是高位为1,5以下的高位为0。   余3码是8421码加上3,有上溢出和下溢出的空间。   格雷码相邻2个数有三位相同,只有一位不同。  

  举个例子:    321的8421码就是    3 2 1    0011 0010 0001   原因:0011=8x0+4x0+1x2+1x1=3 0010=8x0+4x0+2x1+1x0=2. 0001=8x0+4x0+2x0+1x1=1   具体:   bcd码是十位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000   举例:   某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为   A.00000001 00000011 00000111 B. 00000011 00000001 00000111   C.00000010 00000011 00000100 D. 00000011 00000001 00001001   解:(1)11101010转换为十进制:234   (2)按百位、十位和个位的顺序表示,应为    附注:压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8. 

优惠劵

xkdlzy

关注

关注

48

点赞

127

收藏

觉得还不错?

一键收藏

知道了

2

评论

什么是BCD码?BCD码编码规则

BCD码

复制链接

扫一扫

BCD码 基础知识

04-18

介绍BCD码的基础知识,比较全面的介绍了BCD码的原理和在程序中的应用等。。

阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

01-09

关于maven依赖、仲裁、规则,下列哪些说法是正确的:ACD A .的依赖会默认传递给子项目。 B .的依赖绝对不会传递给子项目。 C .在中指定版本号。 D .避免在不同的子项目,声明同一个二方库的不同版本号。 ...

2 条评论

您还未登录,请先

登录

后发表或查看评论

什么是BCD码、8421码、余三码、格雷码

08-19

文章简单介绍了BCD码、8421码、余三码、格雷码的基础知识及区别

BCD码 (二进码十进数)

阿哥的专栏

11-07

3948

二进码十进数(英语:Binary-Coded Decimal,简称BCD,中国大陆称BCD码或二-十进制编码)是一种十进制数字编码的形式。在这种编码下,每个十进制数字用一串单独的二进制比特来存储与表示。常见的有以4位表示1个十进制数字,称为压缩的BCD码(compressed or packed);或者以8位表示1个十进制数字,称为未压缩的BCD码(uncompressed or zoned)。这种编码技术,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字做准确的计算。相对于一般的浮点式记数法,采

BCD码详解

人生一路,点滴记录

07-15

2万+

1、BCD码的种类

BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。

1. 8421 BCD码

8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用00

十六进制和BCD码的那些事(终结篇)

03-15

2万+

十六进制转为BCD码好理解,有问题的是BCD码转为十六进制数;

Hex2Bcd:

0x3F的BCD码是多少?正确答案:99,或者0x63

0x3F=63,再加0x,->0x63, 再把0x63转为99(0x63=99)

1、如果要表示为十六进制,则转换为10进制数,前面加0x符号;(十六进制表示)

2、如果要表示为十进制,则先转换为10进制数,前面加0x符号,再把加上符号的

BCD码以及各进制之间的相互转换

热门推荐

Samuel_a的博客

09-08

5万+

BCD码的学习以及进制之间的换算

【科普】BCD码

qq_40130613的博客

11-30

5291

BCD码就是用4个二进制位表示一个十进制数

什么是BCD码,BCD码的表示

weixin_45317857的博客

06-20

3052

BCD码种类和原理

BCD码与十进制数间转换

故事就酒的博客

05-26

3万+

1.BCD码

  BCD码(Binary-Coded Decimal‎)称为二进码十进数或二——十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的BCD码。无权BCD码有余3码,余3循环码等。

1.1 8421码

  8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制

bcd码是什么意思_BCD码是什么

weixin_35397235的博客

01-15

1万+

今天给大家穿插讲一期常用的数字编码形式----BCD码。可能我们在学校经常使用二进制和十六进制的数字表达形式。然而大多数情况下我们都是需要和十进制数进行转化来进行数字的表达,因为我们社会普遍习惯使用十进制。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。 (一) 那么是什么BCD码呢?BCD码(Binary-Coded De...

数字电路讲义-第一章.pps

07-14

2)大头是数制和编码,二进制,十进制,八进制,十六进制,等等等等,原码,反码,补码,校验码,各种不同的BCD码,等等,以及各种具有实际应用的码制的编码规则和重要应用,希望对你我都有所帮助

[详细完整版]计算机基础.pdf

07-03

第一章:计算机基础 1 本章内容提要 2 1 微机的发展历史,微机系统组成,三总线概念 2 微处理器构造及其指令执行过程 3 进位计数值(2、8、10、16进制)及其相互转 换,二进制数的运算规则 4 编码(BCD码,ASCII码,...

基于51单片机交通信号灯课程设计.docx

02-27

数码管电路 数显电路采用由单片机P0.7~P0.4输出BCD码高位,P0.3~P0.0输出BCD码低位,再通过两个74LS47译码显示至共阳极的数码管上,电路原理图如下: 基于51单片机交通信号灯课程设计全文共13页,当前为第7页。...

南开大学《大学计算机基础》在线作业04.docx

05-24

A:EBCDIC码 B:ASCII码 C:原码 D:BCD码 参考选项:B 二进制数1010011.110转换为十六进制数为( )。 A:53.6 B:53.C C:123.6 D:A3.C 南开大学《大学计算机基础》在线作业04全文共8页,当前为第3页。参考选项:B 南开...

MySQL单表查询(图书管理系统实践题)

03-06

MySQL单表查询(图书管理系统实践题)

如何从0到1构建用户画像系统s240306.pptx

03-06

如何从0到1构建用户画像系统s240306.pptx

Java毕设-基于SpringBoot+Vue的社团管理系统的设计与实现(附源码,数据库,教程).zip

03-06

Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。

包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。

该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

项目都经过严格调试,确保可以运行!

1. 技术组成

前端:html、javascript、Vue

后台框架:SpringBoot

开发环境:idea

数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑)

数据库工具:navicat

部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven

2. 部署

如果部署有疑问的话,可以找我咨询

后台路径地址:localhost:8080/项目名称/admin/dist/index.html

前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

iOS开发工具小集合,不定期更新.zip

最新发布

03-06

iOS开发工具小集合,不定期更新.zip

8421bcd码和格雷码的差别

09-04

8421BCD码和格雷码是两种常用的数字编码系统。

首先,8421BCD码是一种二进制编码系统,用4位二进制数来表示一个十进制数的每个十进制位。每个十进制位用数字0到9的8421码来表示,即0000到1001。8421BCD码可以直接由十进制数转换得到,也可以由二进制数转换得到。

而格雷码则是一种循环码,相邻两个码之间只有一位状态改变。格雷码的转换规则是将二进制码的最高位保持不变,然后每个后续位与其前一位进行异或运算,得到相应的格雷码。格雷码的一个重要应用是在旋转编码器中,可以通过检测码的变化来判断旋转方向和步长。

由于8421BCD码和格雷码的编码规则不同,它们的差别主要体现在以下几个方面:

1. 表示范围:8421BCD码可以表示0到9的十进制数,而格雷码可以表示0到2^n-1的二进制数,其中n表示码位数。格雷码可以表示的数字范围更广。

2. 编码方式:8421BCD码直接用十进制数的码来表示,而格雷码则通过异或运算得到。格雷码的编码方式比较复杂,需要进行运算。

3. 码值变化:8421BCD码的相邻码之间可能有多位进行了改变,而格雷码只有一位状态改变。格雷码的变化更加有规律,更适合用于设计数字电路。

总的来说,8421BCD码主要用于表示十进制数,适合于人类的理解和操作;而格雷码则主要用于数字电路和数据传输中,适合于机器的处理和判断。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

xkdlzy

CSDN认证博客专家

CSDN认证企业博客

码龄17年

暂无认证

131

原创

5万+

周排名

2万+

总排名

55万+

访问

等级

1709

积分

34

粉丝

130

获赞

43

评论

399

收藏

私信

关注

热门文章

什么是BCD码?BCD码编码规则

76703

php 引用& 变量引用、函数引用、对象引用

47039

C++11中静态局部变量初始化的线程安全性

31547

windows 10 中软件的缩放如何单独设置

30413

MySQL中delimiter的作用

30027

最新评论

解决MySQL字段名与关键字冲突

weixin_44392064:

为字段起别名似乎无法解决字段名和关键字的冲突。我刚尝试了一下,别名应该是用来解决连接查询中不同表中相同字段名的冲突的。

Visual Studio 设置代码的左大括号 不换行

xkdlzy:

你想大括号不换行,就选那个"保持在同一行,...."的选项啊

Visual Studio 设置代码的左大括号 不换行

艾克丶艾达:

没用,我把所有的“XXX左大括号置于新行”关了,但是VS自动格式化后依旧把我所有放在函数后的左大括号全给换了新行,巨难受

windows 10 中软件的缩放如何单独设置

卡布奇诺丶浓郁ぃ:

对pycharm为啥没用呢

VS2022(Visual Studio 2022)更改文件默认编码

last_fxlt:

同哭一会

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

vue3:ref,reactive,toRef,toRefs,computed

解决MySQL字段名与关键字冲突

JavaScript Promise

2024年1篇

2023年14篇

2022年25篇

2021年53篇

2020年37篇

2017年1篇

2012年2篇

2011年1篇

目录

目录

最新文章

vue3:ref,reactive,toRef,toRefs,computed

解决MySQL字段名与关键字冲突

JavaScript Promise

2024年1篇

2023年14篇

2022年25篇

2021年53篇

2020年37篇

2017年1篇

2012年2篇

2011年1篇

目录

评论 2

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

什么是 BCD(二进制编码的十进制)-CSDN博客

>

什么是 BCD(二进制编码的十进制)-CSDN博客

什么是 BCD(二进制编码的十进制)

最新推荐文章于 2023-12-28 11:27:28 发布

ソフト開発王さん

最新推荐文章于 2023-12-28 11:27:28 发布

阅读量2w

收藏

79

点赞数

16

分类专栏:

车载

嵌入式

文章标签:

c语言

开发语言

后端

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_18191333/article/details/122266207

版权

嵌入式

同时被 2 个专栏收录

82 篇文章

13 订阅

订阅专栏

车载

48 篇文章

18 订阅

订阅专栏

BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。

二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。

例如,假设运算的结果是十进制数“37”。 由于它是作为二进制数存储在实际寄存器中的,“0010 0101”就是寄存器值。 另一方面,在使用集成开发工具或液晶显示器显示人类可以确认的数​​字时,十六进制数比二进制数更容易看清,因此以十六进制“25”显示。 但是,这样做很不方便,因为十六进制数“25”很难理解为十进制数“37”。 因此,微机的内部电路将十六进制数“25”转换为“37”。 该寄存器存储的是十六进制数“37”,即二进制数“0011 0111”。 对外显示“0011 0111”时,原样显示为“37”,所以一看就知道运算结果是十进制数“37”。

BCD用于时钟和日历功能。 日期和时间的运算本身是以二进制数进行的,但是将运算结果用BCD保存在寄存器中,将其作为时间和日期显示在外部时,具有可以直接利用寄存器内容的优点。 

BCD是什么

BCD是一个十进制数的数字,表示从0到9的二进制四位数。下表显示了从0到15的十进制和相应的二进制、十六进制和BCD。

 

十进制数从0到9,与十六进制数字相同,因此不需要转换为BCD。但是,十进制数的10到15,在十六进制数中会变成英文字,所以必须转换。例如,十进制数字的“10”在十六进制数字中是“A”。 如果你把它转换成BCD,它会变成10,上升一个数量级。由于二进制数的四位数只能表示为9,所以我们将进一步添加二进制数的四位数,并用八位数表示。 

上表中只显示了十进制的15个数字,但是比这个更大的数字也被转换成同样的方式。例如,十进制的20是十六进制的14,但在BCD中转换为20。另外,十进制数的30是十六进制的1E,但在BCD中转换为30。

如何转换为BCD

如何转换为BCD,相对简单。只要根据数值的大小加上6的倍数就可以了。检查运算结果,如果数量大于9,则加6。如果不到9,我什么都不会做。

 要在BCD中表示大于9的数字,需要二进制数的八位数,因此前四位数字将被添加。在大于9的数字上加上6,必定会在第四位数发生进位。这个进位叫半进位。在微型计算机内部执行BCD转换操作时,通过检查半进位来确定大于9的数。

半进位是CCR(Condition Code Register:条件码寄存器)的H(半进位)。

您可以通过将6添加到十进制的9到15,即十六进制的A到F,将其转换为BCD。此外,更大的数字转换方法如下表所示。这里显示的是十进制数的10到39(十六进制的A到27)。十进制数的10到19的情况下加6,20到29的情况下加12,30到39的情况下加18。这样,通过根据数量的大小加上6的倍数,就可以很容易地转换成BCD。

 例如,考虑一下微型计算机中内置的实时时钟(以下简称RTC:Real Time Clock)处理的数字。 RTC是一种时间时钟定时器,可实现时钟和日历功能。计算分钟和秒的最大值为59。时间最大值为12或24。因此,您可以将转换为BCD的最大值限制为59或24。也就是说,即使用普通BCD表示2位数,也可以用6位或7位来表示,而不需要仅限于RTC的所有8位。此外,您还可以在1位和10位之间进行转换,从而优化硬件逻辑规模。

优惠劵

ソフト開発王さん

关注

关注

16

点赞

79

收藏

觉得还不错?

一键收藏

知道了

0

评论

什么是 BCD(二进制编码的十进制)

BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。例如,假设运算的结果是十进制数“37”。 由于它是作为二进制数存储在实际寄存器中的,“0010 0101”就是寄存器值。 另一方面,在使用集成开发工具或液晶显示器显示人类可以确认的数​​字时,十六进制数比二进制数更容易看清,因此以十六进制“25”显示。 但是,这样做很

复制链接

扫一扫

专栏目录

常用编码类型之BCD编码

Solstice_的博客

11-22

4655

BCD:binary-coded decimal(BCD码也称二进码十进数)。即bcd代码,用4位来表示1位中的0~9这10个数码,是一种二进制的数字编码形式,用代码。说明:BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使和之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的式,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

基于Multisim的10位二进制转BCD码仿真

04-23

74185是用途很广的芯片,它可以将二进制数转换成十进制BCD码。

但是,无论Multism还是Proteus,均没有74185的仿真模型。作者参考74185的Datasheet,利用分立元件制作了74185仿真电路,可将10位二进制数转换十进制BCD码(范围0~1023)。

参与评论

您还未登录,请先

登录

后发表或查看评论

BCD格式及与十进制/十六进制的转换

initiallizer的博客

06-03

2093

BCD码是什么?十进制与BCD码如何互换?十六进制与BCD码如何互换?

BCD数(非原创,摘抄而来)

最新发布

xipan_的博客

12-28

347

那么,这里就存在一个问题,我们使用计算器,是输入的为十进制数 25,但是计算机使用二进制数来处理信息,那么就得将 25 (D)转化成 0001 1001 (B),同样计算 25 + 25时,计算机也是处理二进制的25相加,而运算结果 0011 0010(B)还是的需要转化为 十进制 50,展示给人看。前人想出了,一种比较适合十进制系统的二进制编码的特殊形式,即将1位十进制的0~9这十个数字分别用4位二进制的组合来表示,在此基础上可按位对任意十进制数进行编码。那么,计算次数越多,这损失的效率越大。

一次说清楚BCD编码

wangerrong的专栏

09-07

461

第一次接触的时候,真心很懵,但当我看到只有10个码的时候,觉得不过如此。。。人啊,就是这样,对新东西畏惧,对熟悉的东西缺失尊重!

74LS90实现8421BCD码以及5421BCD码

01-14

基于Multisim14绘制的74LS90实现8421以及5421BCD码的仿真

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了

lhvgod的博客

05-12

4769

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

实际上题目就是让你把这个数转化为16进制的数。但是一定不能把,num1*10+num2拿出来,否则就会部分任务点错误。原因我也不知道,知道的大佬

BCD解密

majiamin123的博客

04-01

1196

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个...

使用引导扇区维护工具BOOTICE编辑系统启动列表BCD文件

weixin_33770878的博客

08-23

790

使用引导扇区维护工具BOOTICE编辑系统启动列表BCD文件

系列文章:

笔记本电脑提速之加装内存条、SSD固态硬盘、光驱位换SSD固态硬盘

笔记本ThinkPad E430c加装内存和SSD固态硬盘

笔记本惠普CQ14-a003TX加装内存和SSD固态硬盘

笔记本联想(Lenovo)G40-70M加装内存和SSD固态硬盘

笔记本光驱位换SSD固态...

计算机中bcd的中文意思,BCD码

weixin_42164685的博客

07-27

3714

同义词bcd(Binary-Coded Decimal‎缩写)一般指BCD码BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要...

easy BCD 2.2

04-19

easy BCD 2.2

BCD编码 BCD与十进制转换_CBCD编码_BCDform_

09-30

BCD码(Binary-Coded Decimal?)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

BCD译码器电路multisim

05-28

BCD译码器电路multisim

BCD.rar_bcd

09-19

BCD相乘的一个小程序!!!!第一次上载请见谅

基于Multisim的7位二进制转BCD码仿真

04-23

74185是用途很广的芯片,它可以将二进制数转换成十进制BCD码。

但是,无论Multism还是Proteus,均没有74185的仿真模型。作者参考74185的Datasheet,利用分立元件制作了74185仿真电路,可将7位二进制数转换十进制BCD码(范围0~127)。

基于Multisim的8位二进制转BCD码仿真

04-23

74185是用途很广的芯片,它可以将二进制数转换成十进制BCD码。 但是,无论Multism还是Proteus,均没有74185的仿真模型。作者参考74185的Datasheet,利用分立元件制作了74185仿真电路,可将8位二进制数转换十进制BCD...

基于Multisim的16位二进制转BCD码仿真

04-23

74185是用途很广的芯片,它可以将二进制数转换成十进制BCD码。 但是,无论Multism还是Proteus,均没有74185的仿真模型。作者参考74185的Datasheet,利用分立元件制作了74185仿真电路,可将16位二进制数转换十进制BCD...

二进制转化为BCD十进制

05-14

BCD(Binary Coded Decimal)是一种用二进制编码表示十进制数的方式。将二进制数转换为BCD格式的方法如下:

1. 将二进制数从右往左每4位分为一组,不足4位的在左边补0。

2. 对每一组进行如下转换:如果该组的二进制值小于等于9,则直接将该值转换为BCD格式;否则,将该值减去10,然后将其转换为BCD格式,再在最高位加上1。

例如,将二进制数11010101转换为BCD格式:

1. 将1101和0101分为两组,得到11和0101。

2. 对第一组11进行转换,二进制值为3,直接转换为BCD格式为0011。

3. 对第二组0101进行转换,二进制值为5,直接转换为BCD格式为0101。

4. 得到BCD格式为00110101。

因此,11010101的BCD格式为00110101。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

ソフト開発王さん

CSDN认证博客专家

CSDN认证企业博客

码龄10年

暂无认证

127

原创

4万+

周排名

70万+

总排名

26万+

访问

等级

2290

积分

180

粉丝

109

获赞

30

评论

861

收藏

私信

关注

热门文章

游戏开发之编程语言5选和游戏引擎3选

28281

什么是 BCD(二进制编码的十进制)

20362

寄存器和RAM之间的区别

14371

车载相关测试工具之CANalyzer

11901

CAPL是什么

11796

分类专栏

c++

1篇

设计

4篇

车载

48篇

嵌入式

82篇

AUTOSAR

8篇

硬件

19篇

云计算

2篇

自动驾驶

8篇

web

7篇

c#

2篇

PHP

3篇

python

1篇

机器学习

5篇

VECTOR

5篇

VBA

3篇

辅助技术

OS

1篇

JavaScript

1篇

游戏开发

1篇

Linux

37篇

C语言

11篇

最新评论

微型计算机入门之输入输出端口的使用方法

老鹅的喔:

当设置为输出模式时,读取此时电平状态合理吗

什么是Octo SPI?

Tu_Tu ୧⍢⃝୨:

楼主,请问用OCTO SPI接口配置Qspi芯片时,是怎么个连接法呢

下一代系统软件设计工具“Next Design”

m0_50568768:

楼主现在是霓虹巾了么?

车载相关测试工具之CANalyzer

weixin_45657887:

大哥目前在日本干嘛?

微型计算机基本构成和动作

惘若箫:

读过科班吗?手机不算微型计算机的

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

C++之文字列输入输出

下一代系统软件设计工具“Next Design”

AUTOSAR CP与AP的区别

2023年1篇

2022年9篇

2021年50篇

2020年70篇

目录

目录

分类专栏

c++

1篇

设计

4篇

车载

48篇

嵌入式

82篇

AUTOSAR

8篇

硬件

19篇

云计算

2篇

自动驾驶

8篇

web

7篇

c#

2篇

PHP

3篇

python

1篇

机器学习

5篇

VECTOR

5篇

VBA

3篇

辅助技术

OS

1篇

JavaScript

1篇

游戏开发

1篇

Linux

37篇

C语言

11篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

BCD代码(Binary-Coded Decimal‎) - 知乎

BCD代码(Binary-Coded Decimal‎) - 知乎切换模式写文章登录/注册BCD代码(Binary-Coded Decimal‎)普通社畜张文远BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。[1]简介BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。8421BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。5421BCD码和2421BCD码同为有权码,它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。余3码是由8421码加3后形成的,是一种“对9的自补码”。余3循环码是一种变权码,每一位的在不同代码中并不代表固定的数值,主要特点是相邻的两个代码之间仅有一位的状态不同。格雷码(也称循环码)是由贝尔实验室的FrankGray在1940年提出的,用于PCM方法传送信号时防止出错。格雷码是一个数列集合,它是无权码,它的两个相邻代码之间仅有一位取值不同。余3循环码是取4位格雷码中的十个代码组成的,它同样具相邻性的特点[2]常用BCD码十进制数8421码5421码2421码余3码余3循环码000000000000000110010100010001000101000110200100010001001010111300110011001101100101401000100010001110100501011000101110001100601101001110010011101701111010110110101111810001011111010111110910011100111111001010应用数字钟、数字温度计、数字仪表和一些其他的使用七段显示器的设备是典型的使用BCD码显示十进制数的装置。进行运算时BCD码不如二进制码直接有效,但是如果仅局限于所需要的处理(如以上举例),就显得特别有用Tips在计算机中表示BCD码时,通常要“压缩”使得8位数有两个BCD码。一般情况下,计算机就如同对二进制数进行相加减一样。当BCD码相加减时,程序员需要使用特殊指令纠正运算结果。例如:在汇编语言中,程序中有DAA(十进制加法调整 Decimal Adjust After Addition),用以自动纠正BCD码相加后的结果。参考[1]BCD码_百度百科[2]几种常见BCD码在同步时序逻辑电路中的对比分析 - 中国知网编辑于 2021-03-15 14:08字符编码数字逻辑学习​赞同 30​​6 条评论​分享​喜欢​收藏​申请

十进制与BCD码在线转换计算工具,在线计算,在线计算器,计算器在线计算

十进制与BCD码在线转换计算工具,在线计算,在线计算器,计算器在线计算

Toggle navigation

首页

文档

资源

地图

数据

计算

数学计算

物理计算

化学工具

生活计算与工具

换算工具

金融计算

IT计算与工具

工业计算

专业学科

教程

问答

专题

Python与开源GIS

WebGIS在线教程

Python教程

GISLite: WebGIS静态发布系统

开源GIS中文文档

Python工具/类库中文文档

其它技术文档

开源地理空间基金会中文分会文档

实验室

空间数据可视化

公众号

用户

最近使用

使用最多

我的收藏

我的信息

EN

十进制与BCD码在线转换计算工具

当前位置:首页

计算

计算机

十进制与BCD码在线转换计算工具

十进制与BCD码在线转换计算工具

发布日期: 2016-10-24

更新日期: 2019-11-28

编辑:wangqiuyuan

浏览次数: 157848

分类:

计算机

标签:

十进制BCD码

Help edit

输入二进制数

请选择转换

BCD到10进制的转换

十进制转换到BCD

APP说明

BCD码(Binary-Coded Decimal)也称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

BCD码是用4 位二进制数码来表示一位十进制数字。通常采用8421码(还有其他的比如2421码和余3码)。

这里就用8421码说明一下吧。

四位2进制。分别对应数字8、4、2、1四个数字。

例如:1010 那么对应的数字就是 8 0 2 1 加一起就是十一

例如:0101 那么对应的数字就是 0 4 0 1 加一起就是五

同样的道理

2421码就是对应 2、4、2、1四个数字

余3码用的是8421吗,但是用完之后 要减3.

使用说明

输入BCD值:01100000000

请选择转换: BCD到10进制的转换

点击"现在转换",输出结果。

十进制:300

 

 

 

请 登陆 后进行评论

Submit

评论列表

(0)

计算链接: 十进制与BCD码在线转换计算工具

评价

相关App

ASCII,进位制在线转换工具

十六进制在线转至十进制与二进制

字符串转换为十进制,二进制和十六进制在线计算器

经纬度分秒格式在线转换为十进制

二进制与十进制在线转换工具

二进制与十进制,十六进制,八进制在线转换工具

罗马数字与十进制阿拉伯数字在线转换

二进制与十进制的补码,反码在线计算

计算分类

代数计算

几何计算

三角函数计算

概率统计

电力计算

电子计算

经典物理

分子原子

化学反应

健康计算

生活工具

时间日期换算

长度角度面积体积

速度速率换算

质量重量压力换算

功率、能量单位换算

其他换算

财务计算

保险计算

计算机

Web计算与工具

材料计算

机械计算

建筑计算

水力计算

地理计算与工具

测绘计算与工具

环境计算

环评计算

大气计算

农业计算

最近使用

子区域查询在线计算工具

十二星座运势查询在线计算工具

简体转繁体在线转换工具

pr在线查询工具

药企搜索在线查询工具

使用最多

三角函数反三角函数在线计算器

进制数在线转换工具

二进制与十进制在线转换工具

十进制与二进制在线转换工具

人体体表面积(BSA)在线计算器

Copyright © Since 2014.

开源地理空间基金会中文分会

吉ICP备05002032号

Powered by

TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击

订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org