南昌网站建设平台,网站建设实训进程计划,广州公司注册费用,品牌营销增长公司哪家好概念
BCD (Binary-Coded Decimal) 是一种二进制的数字编码形式#xff0c;其特点每个十进制数位用4个二进制位来表示。
在网络IO中#xff0c;你传输一个数字类型最少需要一字节#xff0c;传输两个数字类型最少需要两字节#xff0c;但是当你使用BCD编码后传输#xff…概念
BCD (Binary-Coded Decimal) 是一种二进制的数字编码形式其特点每个十进制数位用4个二进制位来表示。
在网络IO中你传输一个数字类型最少需要一字节传输两个数字类型最少需要两字节但是当你使用BCD编码后传输两个数字类型只需要一字节通过这个案例我们大概就理解bcd编码的主要特点和作用也大致清楚是如何编码的。
最常用的BCD编码就是使用0至9这十个数值的二进码来表示。这种编码方式在中国大陆称之为“8421码”。当然还有其他有权和无权码不再一一介绍。为什么叫8421因为4个二进制位代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”故得名8421码。其中每一位“1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的所以8421码是恒权码。
图解过程
比如你想传输12这两个数字那么编码过程将会如下所示 每个字节代表两个十进制数位
工具类 /*** 将BCD码数组转换为字符串。* BCD (Binary-Coded Decimal) 是一种编码方式其中每个十进制数位用4个二进制位来表示。* 此方法将字节数组中的每个字节看作两个BCD编码的字符并将它们转换为对应的字符后追加到字符串中。** param b BCD码数组每个字节代表两个十进制数位。* return 转换后的字符串其中每个字符代表一个十进制数位。*/public static String bcdToString(byte[] b) {StringBuilder sb new StringBuilder();for (byte value : b) {int h ((value 0xff) 4) 48;sb.append((char) h);int l (value 0x0f) 48;sb.append((char) l);}return sb.toString();} 总结
如有理解错误的地方请指出