gpt4 book ai didi

c - 将十六进制放入字节数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:43 24 4
gpt4 key购买 nike

我试图将十六进制值放入 Byte[],试图实现 78,66,1E,B5,4F,E7,67,63

   #define BYTE   unsigned char
int num = 1;

long long hex[]
{
0x78661EB54FE76763,
};

int main()
{

for (int c = 0; c < num; c++)
{
printf("%llx\n", hex[c]);

unsigned int number = hex[c];
unsigned int ef = number & 0xff;
unsigned int cd = (number >> 8) & 0xff;
unsigned int ab = (number >> 16) & 0xff;

printf("%x", number & 0xff);

BYTE data2[8]{
ef, cd, ab
};

}
}

更新:

基本上我有一个包含 30 个奇数十六进制值的数组。我正在尝试遍历名为 hex[] 的数组,然后将每个十六进制值分成 2,即 78,66,1E,B5,4F,E7,67,63,然后将每个添加到 BYTE 类型的数组中将十六进制值保存为 8 对,因此 data[0] 的值为 78 到 data[8] 的值为 63,因此我可以将 BYTE 类型的数组传递给另一种方法以进行进一步的工作

最佳答案

这是您想要的解决方案:

#include <stdio.h>
typedef unsigned char BYTE;
int main()
{
int i,j;
long long hex=0x78661EB54FE76763;
BYTE val[8];

for(j=0,i=7; i>=0; i--,j++){
val[j]= (hex>>(i*8))&0xff;
}

printf("Hexadecimal bytes are:\n");
for(j=0;j<8;j++){
printf("%02X ",val[j]);
}

return 0;

}

输出是:

Hexadecimal bytes are:
78 66 1E B5 4F E7 67 63

关于c - 将十六进制放入字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41003693/

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