gpt4 book ai didi

将 10 位 Int 转换为 Hex,然后将其转换为 C 中的值

转载 作者:行者123 更新时间:2023-11-30 18:43:45 32 4
gpt4 key购买 nike

对于 C 类的练习,我们得到一个整数数组,每个整数包含 10 位数字:

unsigned int Array[] = { 1310740313, 1966096717, 2621456717 };

我们被要求打印出一个字母、一个 255 范围内的值和另一个 65535 范围内的值。

我们使用的是小端机器,所以我们必须从右边读取。我可以通过在线转换来找出答案,但我无法使用 C 代码来找出答案。

我是否获取十六进制值,存储它,然后对每个字节执行 printf

我当前的代码如下所示:

for (int i = 0; i < ArraySize; i++)
{
printf("%x\n", Array[i]);
}

输出:

4e204f59, 7530414d, 9c40414d

如何将它们转换为字母和 2 个数字?

最佳答案

我认为您正在寻找这样的东西:

#include <stdio.h>

unsigned int Array[] = { 1310740313, 1966096717, 2621456717 };

int main()
{
for (int i = 0; i < 3; i++) {
printf("%c %d %d\n", Array[i] & 0xff, // last byte as char
(Array[i] & 0xff00) >> 8, // second byte as decimal
(Array[i] & 0xffff0000) >> 16); // last 2 byte as decimal
}
return 0;
}

输出

Y 79 20000                                                                                                                                                                           
M 65 30000
M 65 40000

基本上屏蔽感兴趣的字节并将它们转移到正确的位置。

关于将 10 位 Int 转换为 Hex,然后将其转换为 C 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60242729/

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