【问题标题】:Byte order (endian) of int in NSLog?NSLog中int的字节顺序(字节序)?
【发布时间】:2010-05-14 18:25:11
【问题描述】:

NSLog 函数接受 printf 格式说明符。 我的问题是关于 %x 说明符。 这是否将十六进制代码打印为内存序列?还是有自己的打印顺序样式?

unsigned int a = 0x000000FF;
NSLog(@"%x", a);

以上代码在小端或大端处理器上的结果是相同还是不同? 那么 NSString 的 -initWithFormat 方法呢?它是否同样遵循这条规则?

【问题讨论】:

  • 在这方面,您为什么期望NSLog 与printf 有任何不同?还是你也在问printf?
  • 是的,你是对的。他们是平等的。我也在问 printf 。我从 NSLog 的描述中看到了链接的 printf 文档,但我找不到任何关于字节顺序的直接提及。而且我不太了解C的底层系统。所以我不能确定。这就是为什么我在这里问这个的原因。为了定罪。

标签: c format endianness specifier


【解决方案1】:

%x 总是首先打印最重要的数字。不管它运行在哪种处理器上。

【讨论】:

  • @Carl 你能告诉我更具体的吗?您的意思是字节顺序可能因机器而异?
  • @Eonil,是的。例如,PowerPC mac 是 big-endian,而 Intel mac 是 little-endian。
猜你喜欢
  • 1970-01-01
  • 2010-11-14
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2013-05-24
  • 1970-01-01
  • 2014-05-18
相关资源
最近更新 更多