(1)BCD码(二到十进制编码)
人们通常习惯使用十进制数,而计算机内部多采用二进制表示和处理数值数据,
因此在计算机输入和输出数据时,就要进行由十进制到二进制的转换处理。
把十进制数的每一位分别写成二进制形式的编码,称为二进制编码的十进制数,
即二到十进制编码或BCD(Binary Coded Decimal)编码。
BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简单。
其方法使用四位二进制数表示一位十进制数,从左到右每一位对应的权分别是
23、22、21、20,即8、4、2、1。例如十进制数1975的8421码可以这样得出
1975(D)=0001 1001 0111 0101(BCD)
用四位二进制表示一位十进制会多出6种状态,这些多余状态码称为BCD码中的非法码。
BCD码与二进制之间的转换不是直接进行的,
当需要将BCD码转换成二进制码时,要先将BCD码转换成十进制码,然后再转换成二进制码;
当需要将二进制转换成BCD码时,要先将二进制转换成十进制码,然后再转换成BCD码。
编码过程,将数字69进行BCD编码(注:BCD编码低位在前,后面将不再注释)。
1. 将6,9分别转换成二进制表示:6(00000110)9(00001001),大家可以看到,最大的数字9也只要4个位,在传输过程中白白浪费了4个位;
2. 将69合并为一个字节,分别取6,9二进制编码的低4位,按照低位在前的原则,将9的低四位放前面6的低四位放后面得出新的字节二进制编码是10010110;
3. 完成编码过程,69的BCD编码结果为10010110。
解码过程:将69的BCD码10010110进行解码。
1. 将10010110的高4位与低4位拆分开,得到两个二进制数1001和0110;
2. 分别将1001和0110的前面补充4位0000得到两个8位的二进制数00001001,00000110;
3. 因为编码时低位在前,所以我们将两个二进制数编排顺序为00000110 000010001;
C#版代码实现:
int x=97; ///要对整数97BCD编码
byte m=(((byte)7)<<4)+(((byte)9));
//得到的m即为数字97和BCD码字节表现形式
string bs="";
bs=(((byte)(m<<4))>>4)).ToString()+"+"+(m>>4).ToString();
bs即为从BCD码解得的字符串
分享到:
相关推荐
pb12为unicode,而PB9为aASNI,用网上查找的资料无法解决读取...用c#封装过dll,用pB封装过dll,但是都无法实现。查询帮助资料是才找到问题所在,把测试的源代码放到网上,供需要着下载。当然速度会变慢,已经在项目上处理
在C#中生成和解析二维码是一项常见的任务,特别是在开发移动应用、网站或系统集成时。二维码作为一种高效的信息编码方式,可以存储网址、文本、联系信息等,并且易于通过手机扫描读取。本教程将深入探讨如何在C#环境...
3. **数据编码和解码**:在解析和打包过程中,可能需要对数据进行特定的编码和解码操作,例如BCD(Binary-Coded Decimal)编码或十六进制转换。 4. **错误检测和校验**:CDT规约通常会包含校验和或其他错误检测机制...
工具中的"bcd编码转换"功能,主要针对BCD编码,这种编码常用于存储和传输数字,特别是在嵌入式系统和财务设备中,因为它可以节省空间并简化处理。 其次,十进制转换涉及到将数值从十进制形式转换为其他进制,如二...
在这个项目中,开发者可能使用C#或VB.NET等编程语言,通过VS2008提供的工具和库进行ACII与BCD之间的转换操作。 ACII到BCD的转换过程中,需要将每个ACII字符的数值转换成相应的4位二进制形式。由于ACII码的数字字符...
DLT645-2007协议支持多种数据类型,如BCD编码的数值、时间戳等,源码中会有对应的解码函数。同时,协议还规定了错误处理机制,如当接收的数据帧校验错误时,主站需要发送重发请求。 总的来说,通过分析提供的源码,...
3. **字段解码器**:针对不同类型的字段,如数字、字符串、BCD编码等,设计相应的解码逻辑。 4. **数据结构**:创建一个类或对象模型来存储解析后的字段,便于进一步操作和展示。 5. **错误处理**:在解析过程中,...
这些数据可能以二进制、BCD(二进制编码十进制)或浮点数等形式存在,需要根据规约进行正确的转换。 5. **分类存储**:根据开关量和模拟量的特性,将其分开存储。例如,可以创建两个不同的文件,一个用于开关量,一...
“满五加三”算法是一种用于二进制到十进制转换的经典方法,特别是在BCD(二进制编码的十进制)码的处理中。当二进制数的各位累加达到或超过5时,根据算法需要加上3,以确保最终结果符合十进制规则。这个过程可以...
1. 信息编码的两大要素是编码规则和解码规则。为了在计算机内部处理,现实世界的媒体信息需转化为数字信号,即数字化编码过程。 2. 数值数据包括整数和实数,非数值数据包括字符、图像和声音等。 3. 数值数据表示...