c - 如何获取变量的各个字节的值?

标签 c byte

我知道要获取变量类型使用的字节数,例如可以使用 sizeof(int)。当您存储具有该变量类型的数字时,您如何获得所使用的各个字节的值? (即 int x = 125。)

最佳答案

您必须知道每个“字节”中的位数(通常为 8)。然后,您可以通过将 int 与适当的掩码进行 AND 运算来依次提取每个字节。假设一个 int 是 32 位的,那么从 the_int 中取出 4 个字节:

  int a = (the_int >> 24) & 0xff;  // high-order (leftmost) byte: bits 24-31
  int b = (the_int >> 16) & 0xff;  // next byte, counting from left: bits 16-23
  int c = (the_int >>  8) & 0xff;  // next byte, bits 8-15
  int d = the_int         & 0xff;  // low-order byte: bits 0-7

就是这样:每个字节都是 a、b、c 和 d 的低 8 位。

关于c - 如何获取变量的各个字节的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8680220/

相关文章:

c++ - 如何将多维数组传递给 C 和 C++ 中的函数

c - 如何从程序本身获取指向特定可执行文件部分的指针? (也许与 libelf)

c - 如何通过串口与NCI NFC Controller 通信?

c - 尝试用 C 语言逼近欧拉数

c# - "Where are my bytes?"或文件长度特征调查

C - 递归调用遍历子目录并打印所有文件+大小(使用 stat)

文本文件的字节表示

algorithm - 找到具有最多公共(public)设置位的一对位串

c - 如果我从两台不同的计算机在 VM 中运行程序,内存地址是否相同?

python - 将 bytearray 从 VARBINARY(16) 列转换为 IP 地址