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

标签 c arrays hex

我试图将十六进制值放入 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/

相关文章:

javascript - 获取数组数组中的列

Python:将 Unicode-Hex-String 转换为 Unicode

decimal - 十六进制 0x0001 与 0x00000001

c - 如何在 C 语言中对汉字(UTF-8)进行操作?

java - 创建无界和有界通配符类型数组之间的区别?

PHP 数组排序和输出行为

java - Java中的十六进制转十进制

C编程-温度转换问题

c - s(n)printf 打印比格式说明符指定的字符更多的字符

c - 以下 strncpy 调用的解释