gpt4 book ai didi

c - 查看存储在内存中的值以检查字节序?

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:31 25 4
gpt4 key购买 nike

如果我调试这个 C 代码:

unsigned int i = 0xFF;

如果是小端系统,调试器是否会在内存中显示 0x00FF,如果是大端系统,是否会显示 0xFF00?

最佳答案

如果:

  • 您的系统有 8 位 char
  • 您的系统使用 16 位 unsigned int
  • 并且您的调试器将内存显示为简单的十六进制字节

如果它是小尾数法,你会在 &i 看到这个:

ff 00 ?? ?? ?? ?? ?? ??

如果它是 big-endian:

00 ff ?? ?? ?? ?? ?? ??

问号只是代表内存中 i 之后的字节。

注意:

  • 小端机器会将具有最低值的字节存储在最低地址。
  • big-endian 机器会将具有最大值的字节存储在最低地址。
  • C 没有指定unsigned int 中有多少位。这取决于实现。
  • 您可以使用 CHAR_BIT * sizeof (unsigned int) 找出答案。

如果您的机器使用 32 位 unsigned char,您会看到:

ff 00 00 00 ?? ?? ?? ??

在小端的情况下,在大端的机器上你会看到:

00 00 00 ff ?? ?? ?? ??

关于c - 查看存储在内存中的值以检查字节序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10446423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com