gpt4 book ai didi

c++ - 将二进制编码的十进制 (BCD) 解码为无符号整数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:01 25 4
gpt4 key购买 nike

在我的项目中使用的值是用4位二进制编码的十进制数(BCD)表示的,它最初存储在一个字符缓冲区中(例如,由指针指向 const unsigned char *) .我想将输入的 BCD 字符流转换为整数。你能告诉我一个有效和快速的方法吗?

数据格式示例和预期结果:

BCD*2; 1001 0111 0110 0101=9765
"9" "7" "6" "5"

非常感谢!

最佳答案

unsigned int lulz(unsigned char const* nybbles, size_t length)
{
unsigned int result(0);
while (length--) {
result = result * 100 + (*nybbles >> 4) * 10 + (*nybbles & 15);
++nybbles;
}
return result;
}

length 指定输入中的字节数,因此对于 OP 给出的示例,nybbles 将是 {0x97, 0x65} code> 和 length 将为 2。

关于c++ - 将二进制编码的十进制 (BCD) 解码为无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6138060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com