如何在C中将29位值拆分为字节?

gan*_*bra -1 c gcc

我想将29位值拆分为字节?我怎样才能在C中实现这一目标?

unsigned long value = 0x18FEF512;
Run Code Online (Sandbox Code Playgroud)

我需要像这样的输出val = 0x18,val1 = FE,val2 = F5,val3 = 12.

如何使用bit twidlling来做到这一点?

小智 5

试试这个:

unsigned long value = 0x18FEF512;
unsigned char values[4];
values[0] = value;
values[1] = value >> 8;
values[2] = value >> 16;
values[3] = value >> 24;
printf("%02X %02X %02X %02X\n",values[0],values[1],values[2],values[3]);
Run Code Online (Sandbox Code Playgroud)