- BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
- BCD码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000
- 在Java通信应用中,往往我们接收到数据流,而流是BCD编码后的。因此我们要转码来获得我们想要的十进制数据。下面的代码是BCD编码的数据流与十进制的转换,仅供参考。
package com.util; /** * 编码工具类 * * @author 崔素强 * @see BCD与十进制的转换 */ public class BCDDecode { /** * @功能:测试用例 * @参数: 参数 */ public static void main(String[] args) { byte[] b = str2Bcd("2010"); System.out.println(bcd2Str(b)); } /** * @功能: BCD码转为10进制串(阿拉伯数据) * @参数: BCD码 * @结果: 10进制串 */ public static String bcd2Str(byte[] bytes) { StringBuffer temp = new StringBuffer(bytes.length * 2); for (int i = 0; i < bytes.length; i++) { temp.append((byte) ((bytes[i] & 0xf0) >>> 4)); temp.append((byte) (bytes[i] & 0x0f)); } return temp.toString().substring(0, 1).equalsIgnoreCase("0") ? temp .toString().substring(1) : temp.toString(); } /** * @功能: 10进制串转为BCD码 * @参数: 10进制串 * @结果: BCD码 */ public static byte[] str2Bcd(String asc) { int len = asc.length(); int mod = len % 2; if (mod != 0) { asc = "0" + asc; len = asc.length(); } byte abt[] = new byte[len]; if (len >= 2) { len = len / 2; } byte bbt[] = new byte[len]; abt = asc.getBytes(); int j, k; for (int p = 0; p < asc.length() / 2; p++) { if ((abt[2 * p] >= '0') && (abt[2 * p] <= '9')) { j = abt[2 * p] - '0'; } else if ((abt[2 * p] >= 'a') && (abt[2 * p] <= 'z')) { j = abt[2 * p] - 'a' + 0x0a; } else { j = abt[2 * p] - 'A' + 0x0a; } if ((abt[2 * p + 1] >= '0') && (abt[2 * p + 1] <= '9')) { k = abt[2 * p + 1] - '0'; } else if ((abt[2 * p + 1] >= 'a') && (abt[2 * p + 1] <= 'z')) { k = abt[2 * p + 1] - 'a' + 0x0a; } else { k = abt[2 * p + 1] - 'A' + 0x0a; } int a = (j << 4) + k; byte b = (byte) a; bbt[p] = b; } return bbt; } }
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点...
在数字电路设计中,十进制到二进制补码表示(BCD,Binary-Coded Decimal)转换是一项基本任务,特别是在显示系统或者财务计算设备中。`Verilog`是一种广泛使用的硬件描述语言,用于设计数字逻辑系统。在这个工程中,...
在计算机科学和自动化控制领域,BCD码(Binary-Coded Decimal,二进制编码的十进制数)是一种用于表示十进制数的二进制编码方式。它将每个十进制位用四位二进制数来表示,使得数字处理更加直观且适合硬件实现。在...
本文档详细解析了一个Verilog程序,该程序实现了16进制数到二进制编码十进制(Binary Coded Decimal, BCD)格式的转换,并最终用于驱动数码管显示。在数字系统设计领域,这种转换是非常常见的需求之一,特别是在需要...
- 在Java中处理BCD编码通常涉及将十进制数转换为二进制数组,或将二进制数组解码回十进制数。示例代码没有包含直接处理BCD编码的函数,但你可以创建一个方法,将字节转换为BCD编码或从BCD编码还原。 4. **对象序列...
BCD码通常用于处理和存储与人类易读的十进制数相关的数据,尤其是在财务计算、计数器和显示器应用中。标题中的"BCD.rar_16二进制转bcd_bcd_bcd conversion_二进制转BCD码"表明这个压缩包包含了一个关于将16位二进制...
3. 压缩编码:根据选定的压缩BCD编码策略,将十进制数编码为二进制,可能需要进行位移和逻辑运算。 4. 组合结果:将压缩后的BCD码组合在一起形成最终的压缩型BCD码。 在提供的压缩包文件中,`ADC0_TEMP.c`可能是...
在数字电子技术中,二进制编码十进制(Binary-Coded Decimal,简称BCD码)是一种将十进制数字转换为二进制表示的方法,常用于计算机系统中处理数值数据,特别是在显示和打印数字时。BCD码的主要优势在于它能直接映射...
有多种BCD编码方法,如8421编码、5421编码等,其中8421是最常见的,每一位二进制对应十进制数的权重分别是8、4、2和1。 在实际应用中,十进制、二进制、ASCII和BCD码之间的转换常常是必要的。例如,当我们需要在...
每个十进制数位都用4个二进制位来表示,例如,十进制数5用BCD编码是0101,9是1001。这种编码方式确保了每四位二进制就能直接对应一个十进制数,便于进行十进制计算。 16进制到BCD的转换通常涉及到以下几个步骤: 1...
74185是用途很广的芯片,它可以将二进制数转换成十进制BCD码。 但是,无论Multism还是Proteus,均没有74185的仿真模型。作者参考74185的Datasheet,利用分立元件制作了74185仿真电路,可将10位二进制数转换十进制BCD...
BCD(Binary-Coded Decimal,二进制编码的十进制)是一种将十进制数用二进制表示的方式,每个十进制数位由4位二进制数表示。对于2位BCD码加法,我们需要处理两个两位的BCD码,并得到它们的和,同样保持BCD格式。 在...
74185是用途很广的芯片,它可以将二进制数转换成十进制BCD码。 但是,无论Multism还是Proteus,均没有74185的仿真模型。作者参考74185的Datasheet,利用分立元件制作了74185仿真电路,可将8位二进制数转换十进制BCD...
在电子和计算机科学领域,BCD(Binary-Coded Decimal,二进制编码的十进制)是一种用二进制表示十进制数的方法,尤其在单片机编程中广泛使用。BCD码允许我们直接存储和处理十进制数值,这对于处理与人类习惯的十进制...
#### BCD码与十六进制转换原理 - **BCD码(Binary-Coded Decimal)**是一种编码方式,用来表示十进制数字,其中每个十进制数字用4位二进制表示。 - **十六进制表示**则是将二进制数每4位一组转换为一个十六进制字符...
本话题主要关注BCD码(Binary-Coded Decimal,二进制编码的十进制)与二进制码之间的转换,特别是涉及到在VHDL中实现这种转换的逻辑电路。BCD码是一种特殊形式的二进制码,用来表示十进制数,每个十进制位用四位二...
BCD码是一种将十进制数字编码为二进制形式的方法,其中每个十进制数字由四位二进制数表示,即每一位的值可以从0到9。而十六进制则是基数为16的进位计数制,常用A-F(或a-f)来表示10-15。 ### BCD码与十六进制的...
完成这个任务可能需要掌握基本的编程知识,包括变量、循环、条件判断以及对二进制和十进制转换的理解。如果项目文件“mazhizhuanhuan2.docx”包含了代码示例或更详细的信息,那么它会提供解决这个问题的实用指导。
在BCD编码中,每四位二进制代表一个十进制数,因此16位二进制数将被转换成4个两位的BCD数,每个BCD数代表原数的一个十进制位。 描述提到的“此代码可以实现16位二进制和BCD码之间的转换”,这意味着存在一段程序...
它提供了一些工具类来处理BCD编码,如`DecimalUtils`,可以方便地进行BCD与十进制数之间的转换。 在压缩包中的`BCDCode.java`文件可能包含了一个自定义的BCD编码示例。通常,这样的类会包含以下功能: - `encode...