BCD码的概念

在日常生产生活中用的最多的数字是十进制数字,而单片机系统的所有数据本质上都是二进制的,所以聪明的前辈们就给我们创造了BCD码。

BCD码(Binary-Coded Decimal),亦称为二进码十进制数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数字,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。

我们前边讲过十六进制和二进制本质上是一回事,十六进制仅仅是二进制的一种缩写形式而已。而十进制的一位数字,从0到9,最大的数字就是9,再加1就要进位,所以用4位二进制表示十进制,就是从0b0000到0b1001,不存在0b1010、0b1011、0b1100、0b1101、0b1110、0b1111这6个数字。BCD码如果到了0b1001,再加1的话,数字就变成0b00010000这样了,相当于用了8位的二进制数字表示了2位的十进制数字。

BCD码的应用还是非常广泛的,比如我们在实际应用中使用的实时时钟,日期时间在时钟芯片中的存储格式就是BCD码,当我们需要把它记录的时间转换成可以直观显示的ASCII码时(比如在液晶上显示),就可以省去一步由二进制的整型数到ASCII码的转换过程,而直接取出表示十进制1位数字的4个二进制位然后再加上0x30就可组成一个ASCII码字节了,这样就会方便的多,在后面的实际例程中将看到这个简单的转换。

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全国计算机应⽤基础知识:汉字、字符编码   (1)计算机中的信息单位   计算机中对信息表⽰的单位有位、字、字长及字节等,它们是⽤来表⽰信息量的⼤⼩的基本概念。    位:计算机中数据存储的最⼩单位是⼀个⼆进制位,简称位,英⽂为bit,⾳译为⽐特,可⽤⼩写字母b表⽰。    字节:⼋位⼆进制位称为⼀个字节,英⽂为Byte,可⽤⼤写字母B表⽰,是计算机存储的基本单位。⼀个字节的⼋位⼆进制数,其位编号⾃ 左⾄右为b7、b6、b5、b4、b3、b2、b1、b0。在计算机中,往往⽤字节数来表⽰存储容量,容量可以以KB、MB、GB、TB为单位,它们相互之 间的转换关系如下:   1KB=210B=1024B   1MB=210KB=1024KB   1GB=210MB=1024MB   1TB=210GB=1024GB    字:计算机在存储、传送或操作时,作为⼀个整体单位进⾏操作的⼀组⼆进制,称为⼀个计算机字,简称字。    字长:每个字所包含的位数称为字长。由于字长是计算机⼀次可处理的⼆进制数的位数,因此它与计算机处理数据的速率有关,是衡量计 算机性能的⼀个重要因素。   (2)字符的编码。    ASCII码。   计算机只能识别⼆进制数,因此计算机中的数字、字母、符号也必须⽤⼆进制进⾏编码。编码⽅法有多种,微型机中普遍采⽤的是ASCII码 (美国标准信息交换码),ASCII码现已被国际标准化组织(ISO)接收为国际标准,称为ISO-646。ASCII码有7位版本和8位版本两种,国际上通 ⽤的ASCII码是7位版本。7位版本的ASCII码包含10个阿拉伯数字、52个英⽂⼤⼩写字母、32个标点符号和运算符及34个控制码,共128个字符, 所以可⽤7位⼆进制数表⽰。7位ASCII码字符如下图所⽰:   要确定⼀个数字、字母、符号或控制字符的ASCII码,可在表中先找出它的位置,然后确定它所对应的⼗进制值或⼆进制值。例如⼩写字 母"a"的ASCII码其⼗进制值是97,⼆进制值是1100001B(B表⽰⼆进制数),若转换成⼗六进制,其值是61H(H表⽰⼗六进制数)。从表中可以 看出,数字0~9的ASCII码是30H~39H(后缀H表⽰是⼗六进制数),⼤写字母A~Z的ASCII码是41H~5AH,⼩写字母a~z的ASCII码是61H~ 7AH。字符⼤⼩的⽐较就是看它的ASCII码值的⼤⼩。   表中,NUL、BEL、LF、FF、CR、DEL等是控制字符,NUL表⽰空,BEL是告警符,BS是退格符,LF是换⾏符,FF是换页符,CR是回车 符,SP是空格符,DEL是删除符。    BCD码。   ⽤计算机处理数字时,要进⾏⼆进制与⼗进制的相互转换,这就要⽤⼆进制对⼗进制数进⾏编码,BCD(Binary Coded Decimal)码是⼆进 制编码的⼗进制数。最常⽤的BCD码就是8421BCD码,   它是⽤4位⼆进制数为⼀组表⽰⼀个⼗进制数字,4位⼆进制数从左到右其位权依次为8、4、2、1,它可以组合成16种状态,对0~9这10个数 字的编码只取0000~1001这前10种状态,其余6种状态不⽤。为了能对⼀个多位⼗进制数进⾏编码,需要有和⼗进制数的位数⼀样多的4位⼆进制 组,按顺序分别进⾏编码。表1-4表⽰8421BCD码与⼗进制数的对应关系。   表1-4 BCD码与⼗进制数的对应关系    Unicode编码   ASCII码提供了128个字符,扩展的ASC码提供了256个字符,但⽤来表⽰世界各国的⽂字编码还显得不够,还需要表⽰更多的字符和意义,因 此⼜出现了Unicode编码。   Unicode是⼀种16位的编码,能够表⽰65000多个字符或符号。⽬前世界上的各种语⾔⼀般所使⽤的字母或符号在34000个左右,所以 Unicode编码可以⽤于任何⼀种语⾔。Unicode编码与现在流⾏的ASCII码完全兼容,⼆者的前256个符号是⼀样的。   (3)汉字的编码   汉字是⼀种象形⽂字,字数极多(现代汉字中仅常⽤字就有六七千个,总字数⾼达5万个以上),且字形复杂,每⼀个汉字都有"⾳、形、 义"三要素,同⾳字、异体字也很多,这些都给汉字的计算机处理带来了很⼤的困难。要在计算机中处理汉字,必须解决以下⼏个问题:⾸先,是 汉字的输⼊,即如何把结构复杂的.⽅块汉字输⼊到计算机中去,这是汉字处理的关键;其次,汉字在计算机内如何表⽰和存储,如何与西⽂兼 容;最后,如何将汉字的处理结果从计算机内输出。为此,必须将汉字代码化,   即对汉字进⾏编码。对应于上述汉字处理过程中的输⼊、内部处理及输出这3个主要环节,每⼀个汉字的编码都包括输⼊码、交换码、内部码 和字形码。在计算机的汉字信息处理系统中,处理汉字时要进⾏如下的代码转换:输⼊码 交换码 内部码 字形码。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值