我有一个保存十六进制地址的指针
例如0x0CBC
现在我想要一个变量来保存十六进制格式的MSB地址,例如0x0c,另一个变量来保存十六进制格式的LSB地址,例如0xBC
我该怎么办?
----编辑
void *AddressFSubd=(void *)fSub;
AddressFSubd 持有 0x0CBC
最佳答案
只需掩码和移位即可提取字节:
unsigned int lsb = (unsigned int)ptr & 0xFF;
unsigned int msb = ((unsigned int)ptr >> 8) & 0xFF;
这是假设 unsigned int
至少与指针一样大,否则强制转换是未定义的。
我不确定“十六进制格式”是什么意思 - 它们只是内存中的字节,没有格式。
关于c - 从C中的十六进制地址中提取MSB和LSB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21503396/