c - 从C中的十六进制地址中提取MSB和LSB

标签 c hex

我有一个保存十六进制地址的指针
例如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/

相关文章:

c++ - MODBUS TCP 应答转换为浮点 C++

linux - 需要一个好的 Linux 十六进制编辑器

c - 如何将文本文件中的一行子字符串保存到字符串数组中?

c++ - Box2D C++ - 为什么除以 2?

javascript - 我需要一个函数,它为属于某个范围的给定 float 输出十六进制值

python - 以十六进制形式显示而不是特殊字符

objective-c - ObjC 访问 C 函数中的属性

多重定义的 C 链接错误

C getaddrinfo() 无法解析名称

css - 使用 HEX 或 RGBA