BCD编码
- 格式:docx
- 大小:14.76 KB
- 文档页数:3
bcd码标准
BCD码,也称二-十进制编码,是一种数字编码方式,用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6,7,8,9十个数符。
最常用的BCD码称为8421BCD 码,8、4、2、1分别是4位二进数的位取值。
BCD码的转换方式如下:
BCD码与十进制数的转换:若将BCD码1000 0101.0101转换为十进制数如:(1000 0101.0101)BCD=85.5。
BCD码的加法运算:以8421BCD码为例,若要计算38+49,首先将38和49分别转换为二进制码(0010 0100 1000)和(0010 0100 1001),然后进行加法运算,(0010 0100 1000) + (0010 0100 1001) = (0100 1001 0001),这就是38+49的8421BCD码结果。
另外,BCD码也广泛应用于计算机科学、通信工程、电子工程等领域。
在计算机科学中,BCD码被用于表示和存储十进制数,以提高数据的可读性和精度。
在通信工程中,BCD码被用于数据的传输和编码,以确保数据的准确性和可靠性。
在电子工程中,BCD 码被用于数字电路的设计和实现,以提高电路的可靠性和稳定性。
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。
用4位二进制数来表示1位十进制数中的0~9这10个数码。
是一种二进制的数字编码形式,用二进制编码的十进制代码。
BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。
这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。
相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。
此外,对于其他需要高精确度的计算,BCD编码亦很常用。
即BCD代码。
Binary-Coded Decimal?,简称BCD,称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编码方式最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。
这种编码方式,在中国大陆称之为“8421码”。
除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。
这些编码,大致可以分成有权码和无权码两种:有权BCD码,如:8421(最常用)、2421、5421…无权BCD码,如:余3码、格雷码…以下为三种常见的BCD编码的比较。
BCD码和十六进制数的区别BCD 码(Binary-Coded Decimal)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数。
BCD码各位的数值范围为2#0000~2#1001,对应于十进制数0~9。
BCD码不能使用十六进制的A~F(2#1010~2#1111)这6个数字。
BCD码本质上是十进制数,因此相邻两位逢十进一。
BCD码的最高位二进制数是符号位,负数的符号位为1,正数为0。
16位BCD码的范围为–999~+999。
下图的拨码开关将显示的数字转换为4位二进制数。
PLC用12个数字量输入点读取的是3位BCD码,它的值为2#1000 0010 1001,即十六进制数16#829。
BCD码没有单独的表示方法,而是借用了十六进制的表示方法,因此二者很容易混淆。
下图是S7-300/400的BCD码和整数的相互转换指令,可以看到在指令中BCD码均用十六进制的形式表示。
在程序中,怎么知道一个数字是BCD码还是十六进制数呢?1)看数据的来源和用途。
BCD码一般用于输入和输出,例如来自拨码开关的数据是BCD码,送给显示电梯楼层的译码器芯片的是BCD码。
2)看手册的规定,例如数据类型DATE_AND_TIME中的日期和时间值是BCD码,计数器的预设值PV和当前计数值CV_BCD 为BCD码。
怎样监视BCD码?在变量表和程序状态监控中,用十六进制格式监视BCD码。
怎样输入BCD码?从上图可以看出,BCD码用十六进制格式输入,其最高位(符号位)为16#F(2#1111)。
BCD码的低3位各位只能是0~9,如果是16#A~16#F则会出错。
计数器的预设值PV是0~999的BCD码,可以用格式为C#的常数(C#1~C#999)作为计数器的预设值。
下图用MW42提供计数器的预设值PV,如果用MOVE指令将十进制数348(对应的十六进制数为16#15C)传送给MW42,进入RUN模式时,操作系统将它转换为BCD码时出错(16#15C不是BCD码),不能切换到RUN模式。
微机原理与接口技术──BCD 码和 BCD 调整指令一、 BCD码BCD 码是一种用 4 位二进制数字来表示一位十进制数字的编码,也称为二进制编码表示的十进制数( Binary Coded Decimal),简称 BCD 码。
二、 BCD码两种格式1、压缩 BCD 码格式( Packed BCD Format)。
1 个字节的高低 4 位各表示 1 位十进制数。
比方:十进制数 4256 的压缩 BCD 码表示为 2 个字节: 0100 0010B、 0101 0110 B2、非压缩 BCD 码格式( Unpacked BCD Format)。
1 个字节的高 4 位悠闲不用,仅用低4位表示 1 位十进制数。
比方:十进制数4256 的非压缩 BCD 码表示为 4 个字节:xxxx0100B 、xxxx0010B 、 xxxx0101B 、 xxxx0110 B三、 BCD码的运算和调整BCD 码使用频率不高,因此任何CPU 都不会设置特地的BCD 运算指令。
遇到BCD 码的运算,只好利用一般 2 进制运算指令来进行。
但是,运用 2 进制的运算指令获得的结果就会失掉BCD 码的特色。
例 1:BCD 码35 + 35 ,我们希望获得BCD 码 70(0111 0000B)。
但是依据 2 进制规律, 0011 0101B + 0011 0101B实质等于 0110 1010B。
也就是说低 4 位依据 2 进制可以表达 10 而不会进位。
此时,若对结果加 6(0110 1010 + 0000 0110),就可以获得正确 BCD 结果 0111 0000B。
例 2:BCD 码 38 + 38,我们希望获得 BCD 码 76(0111 0110B)。
但是依据 2 进制规律, 0011 1000B +0011 1000B 实质等于 0111 0000B(BCD 码 70)。
也就是说低4 位依据2 进制规律产生了进位,而这个进位带走了16,而不是10,因此结果依据BCD 理解少了 6。
bcd转换成十六进制BCD是二进制编码的十进制数码的缩写,全称Binary Coded Decimal。
BCD码是一种十进制数的二进制表示方法,将十进制数的每一位数码转换成二进制数码,然后将每个二进制数码存储在一个四位二进制数中。
BCD码的优点是易于人类阅读和理解,但其缺点是占用的存储空间较大。
而十六进制是一种数制,基数为16,使用0-9和A-F表示数码,其中A-F分别表示十进制数10-15。
在计算机领域,十六进制常用于表示二进制数,因为十六进制可以很方便地表示四位二进制数。
BCD码转换成十六进制有两种方法,一种是直接将BCD码转换成十进制数,然后再将十进制数转换成十六进制数;另一种是将BCD码直接转换成十六进制数。
一、BCD码转换成十进制数将BCD码转换成十进制数的方法是将每个四位二进制数转换成十进制数,然后将各位数相加。
例如,将BCD码1101 1010 0011 0110转换成十进制数的过程如下:第一位数:1101 = 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 13第二位数:1010 = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 10第三位数:0011 = 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 3第四位数:0110 = 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 6将各位数相加得到十进制数:13 + 10 + 3 + 6 = 32因此,BCD码1101 1010 0011 0110转换成十进制数为32。
二、十进制数转换成十六进制数将十进制数转换成十六进制数的方法是不断地将十进制数除以16,直到商为0为止。
每次将余数转换成十六进制数,并将其保存在一个数组中。
最后将数组中的数倒序排列就得到了十六进制数。
例如,将十进制数32转换成十六进制数的过程如下:32 ÷ 16 = 2 02 ÷ 16 = 0 (2)因此,32转换成十六进制数为20。
十进制数的二进制编码(BCD)BCD码不是二进制数,而是用4位二进制码对十进制数字符号进行编码后的十进制数,即二进制编码的十进制数,简称BCD(Binary Coded Decimal)码。
BCD码与十进制数之间的转换是按4位二进制码对应1位十进制数,直接进行转换的,即1个n位十进制数对应的BCD码肯定为4n位二进制码。
数字系统中常用的BCD码有8421码、2421码和余3码,3种编码的特点可归纳如下。
1.8421码8421码是一种用4位二进制码表示1位十进制数字符号的有权码,其4位二进制码从高位至低位的权依次为8、4、2、1,故称为8421码。
例如,(369)10=(0011 0110 1001)84218421码的位权与4位二进制数的位权完全相同,但8421码不允许消失1010~1111六种组合。
其次,8421码与ASCII码的低4位相同,两者转换特别便利。
2.2421码2421码是一种用4位二进制码表示1位十进制数字符号的有权码,其4位二进制码从高位至低位的权依次为2、4、2、1,故称为2421码。
例如,(369)10=(0011 1100 1111)24212421码不允许消失0101~1010六种组合。
其次,2421码是一种“对9的自补代码”,可给运算带来便利。
3.余3码余3码是由8421码加上0011形成的一种无权码,由于它的每个字符编码比相应8421码多3,故称为余3码。
例如,(369)10=(0110 1001 1100)余3码余3码不允许消失0000、0001、0010、1101、1110和1111六种组合。
其次,余3码是一种“对9的自补代码”,可给运算带来便利。
java bcd码解析BCD码是一种二进制编码方式,它用四位二进制数来表示一个十进制数的每一位。
在Java中,我们可以使用一些算法和方法来解析BCD码。
我们需要了解BCD码的基本原理。
BCD码的全称为Binary-Coded Decimal,即二进制编码的十进制数。
它是一种直观的表示十进制数的方法,通过将每个十进制位数转换为四位二进制数来实现。
在Java中,我们可以使用字符串来表示BCD码。
假设我们有一个BCD码为"0011 0101 1000",我们可以通过以下步骤来解析它:1. 去掉空格,得到"001101011000";2. 将字符串转换为字符数组,方便后续处理;3. 创建一个int类型的变量result,用于保存解析后的十进制数;4. 从左到右遍历字符数组,对于每个字符,将其转换为对应的十进制数并累加到result中;5. 最后得到的result即为解析后的十进制数。
下面我们来具体实现一下:```javapublic class BCDParser {public static int parseBCD(String bcd) {// 去掉空格bcd = bcd.replaceAll(" ", "");// 转换为字符数组char[] bcdArray = bcd.toCharArray();// 解析BCD码int result = 0;for (int i = 0; i < bcdArray.length; i++) {int digit = bcdArray[i] - '0'; // 将字符转换为对应的十进制数result = result * 10 + digit; // 累加到result 中}return result;}public static void main(String[] args) {String bcd = "0011 0101 1000";int decimal = parseBCD(bcd);System.out.println("解析后的十进制数为:" + decimal);}}```以上代码中,我们通过定义一个静态方法parseBCD来实现BCD码的解析。
bcd原理
BCD编码是用4位二进制数来表示十进制数的一种编码方式。
BCD的全称是二进制编码十进制,也就是Binary Coded Decimal的缩写。
BCD编码使用4位二进制数来表示十进制数的每一位。
每一
位的取值范围是0~9,即0000~1001。
例如,十进制数25可
以表示为0010 0101,其中0010表示十位上的2,0101表示个位上的5。
BCD编码的优点是可以直接表示十进制数,不涉及二进制和
十进制之间的转换。
相比其他编码方式,BCD编码更直观、
易懂,且不需要进行数制转换。
然而,BCD编码也存在一些缺点。
首先,BCD编码使用的存
储空间较大,每位十进制数需要4位二进制数来表示,比纯二进制编码需要更多的存储空间。
其次,BCD编码的运算复杂
度较高,与二进制运算相比,BCD编码的运算速度较慢。
因此,在计算机系统中,通常使用二进制编码进行运算,而在人机接口中使用BCD编码进行显示和输入。
总结起来,BCD编码是一种直观、易懂的表示十进制数的方式,但在存储空间和运算速度方面存在一些不足。
8421的解法
8421是一种编码方法,也称为BCD编码。
它将十进制数转换为由四个数字组成的二进制数,每个数字的权值分别是1、4、16、64。
下面是8421编码的解法:
1. 将要转换的十进制数除以10,得到商和余数。
2. 将商作为第一位数字,余数作为第二位数字,用二进制表示,并将每个数字的权值表示为1、4、16、64。
3. 重复步骤2,直到商为0为止。
4. 得到的结果就是8421编码的表示形式。
例如,将十进制数23转换为8421编码:
1. 23除以10得到2余3。
2. 将2作为第一位数字,3作为第二位数字,用二进制表示为1010,表示权值为1、4、16、64的数字分别为0、1、0、1。
3. 重复步骤2,直到商为0为止,得到的8421编码为10101001。
因此,十进制数23的8421编码为10101001。
第1页/ 共1页。
BCD码简介
什么是BCD码?
在PLC数据转换中经常接触到BCD码,那么什么是BCD码,什么是压缩的BCD 码?二者又有什么区别呢?
在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。
它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。
在某些情况下,计算机也可以对这种形式的数直接进行运算。
常见的BCD码表示有以下几种。
8421BCD编码
这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。
例写出十进数563.97D对应的8421BCD码。
563.97D=0101 0110 0011 . 1001 01118421BCD
例写出8421BCD码1101001.010118421BCD对应的十进制数。
1101001.010118421BCD=0110 1001 . 0101 10008421BCD=69.58D
在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。
四位二进制数的其余六个编码1010,1011,1100,1101,1110,1111不是有效编码。
2421BCD编码
2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。
其编码规则如下表。
余3码
余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。
常见BCD编码表
十进制数 8421BCD码 2421BCD码余3码
0 0000 0000 0011
1 0001 0001 0100
2 0010 0010 0101
3 0011 0011 0110
4 0100 0100 0111
5 0101 1011 1000
6 0110 1100 1001
7 0111 1101 1010
8 1000 1110 1011
9 1001 1111 1100
10 0001,0000 0001,0000 0100,0011
非压缩式和压缩式:
BCD又分为两种,非压缩式和压缩式两种。
前面这种81秒存成“08,01”是非紧密式,而紧密式会存成“81h” (直接以十六进制储存)。
非压缩的BCD码只有低四位有效,而压缩的BCD码则将高四位也用上了,就是说一个字节有两个BCD码。
BCD是用0和1表示十进制,如0000表示0,0001表示1,0010表示2,举例子1234表示成0001001000110100,而压缩的bcd是用00表示0,01表示1,10表示2,110表示3等,但压缩的BCD并不固定,可看情况而定,所要的就是用最少的位数表示尽可能多的数。
BCD码:
BCD(Binary Coded Decimal)是用二进制编码表示的十进制数(见表3.3),
十进制数采用0~9十个数字,是人们最常用的。
在计算机中,同一个数可以用两种BCD格式来表示:①压缩的BCD码②非压缩的BCD码
压缩的BCD码:
压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数用一串B CD码来表示。
例如,十进制数59表示成压缩的BCD码为0101 1001,十进制数1946表示成压缩的BCD码为0001 1001 0100 0110。
非压缩的BCD码:
非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD 码,高4位是0。
例如,十进制数78表示成压缩的BCD码为0000 0111 0000 1 000。
从键盘输入数据时,计算机接收的是ASCII码,要将ASCII码表示的数转换成BCD码是很简单的,只要把ASCII码的高4位清零即可。