Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我能够将 BCD 转换为十进制,例如我可以将 0x11 转换为 11 而不是十进制的 17。这是我使用的代码。
unsigned char hex = 0x11; unsigned char backtohex ; int dec = ((hex & 0xF0) >> 4) * 10 + (hex & 0x0F);
现在我想转换dec回 BCD 表示。我希望将 11 转换回 0x11 而不是 0x0B。我有点困惑如何回去。
dec
谢谢!
假设您的输入始终介于 0 和 99 之间,包括:
unsigned char hex = ((dec / 10) << 4) | (dec % 10);
只需将高位数字向左移动一个半字节,或者将低位数字原位。