解析字节(C Windows)

won*_*rer 3 c windows parsing byte

我有一个DWORD值,在Hex中可能看起来像:

DWORD Val = 0xFF01091A
Run Code Online (Sandbox Code Playgroud)

我怎样才能读取每个字节?我的意思是,如何阅读FF,01,09和1A?

谢谢!

EFr*_*aim 8

不是更像是:

uint8_t Byte1 = (Val>> 0) & 0xFF;
uint8_t Byte2 = (Val>> 8) & 0xFF;
uint8_t Byte3 = (Val>>16) & 0xFF;
uint8_t Byte4 = (Val>>24) & 0xFF;
Run Code Online (Sandbox Code Playgroud)


Chr*_*oph 5

DWORD value;
// casts to `char *` are always ok:
unsigned char * bytes = (unsigned char *)&value;
unsigned char third_byte = bytes[2];
Run Code Online (Sandbox Code Playgroud)

请记住,这将获得放置在内存中的字节:在小端机器bytes[0]上将保留最低有效字节,在大端机器上它将保留最重要的字节.

如果您想按重要性获取字节,请按照Efraim的答案中的建议使用移位.