| | |
| | | return ((data & 0xF0) >> 4) * 10 + ((data & 0x0F)); |
| | | } |
| | | |
| | | |
| | | public static byte[] getIntToBCD(int number) { |
| | | // 获取整数的字符串表示形式 |
| | | String numberStr = Integer.toString(number); |
| | | |
| | | // 创建一个字节数组以存储BCD表示 |
| | | int len = numberStr.length(); |
| | | byte[] bcd = new byte[(len + 1) / 2]; |
| | | |
| | | int j = 0; |
| | | // 如果数字的长度是奇数,需要在前面添加一个0 |
| | | if (len % 2 != 0) { |
| | | numberStr = "0" + numberStr; // 先添加前导零 |
| | | len++; |
| | | } |
| | | |
| | | // 将每一对数字转换为一个字节 |
| | | for (int i = 0; i < len; i += 2) { |
| | | bcd[j++] = (byte) (((numberStr.charAt(i) - '0') << 4) | (numberStr.charAt(i + 1) - '0')); |
| | | } |
| | | |
| | | return bcd; |
| | | } |
| | | /** |
| | | * short10进制转16进制 低位在前高位在后 |
| | | * |