gpt4 book ai didi

转换 Long -> Hex,然后将该 Hex 分配给 C 中的 Char

转载 作者:行者123 更新时间:2023-11-30 17:44:11 27 4
gpt4 key购买 nike

我正在使用计算 16 位 CRC 校验和的函数。

该函数生成一个包含校验和的 LONG(以 10 为基数的数字格式)。当然,这可以以十六进制等效形式打印到控制台,如下所示:

printf("Checksum:  0x%x\n", crctablefast((unsigned char *)string, datalength));

对于要检查的给定 20 字节字符数组,它将生成十六进制格式的校验和 23277:

Checksum:  5AED

我需要将校验和作为 char 存储在 char 数组的第 21 和 22 位,如下所示:

Char [20] = 0x5A
Char [21] = 0xED

问题是像 scanf 和 sscanf 这样的函数,我能做的最好的就是按字面意思分配字符,如下所示:

Char [20] = "0x5A"
Char [21] = "0xED"

...这不好。

如何才能一次获取两个字符,并使用它们为字符分配十六进制值?还是有更简单的方法?

提前谢谢您!

最佳答案

使用位掩码:

ch[20] = (crc >> 8) & 0xff;
ch[21] = crc & 0xff;

关于转换 Long -> Hex,然后将该 Hex 分配给 C 中的 Char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064237/

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