【问题标题】:What's does "machine byte order" in PHP pack mean? [closed]PHP包中的“机器字节顺序”是什么意思? [关闭]
【发布时间】:2012-09-14 19:20:52
【问题描述】:

我了解小端和大端,但是“机器字节顺序”是什么意思?

【问题讨论】:

  • 这是一个问题还是一个陈述?
  • 表示运行机器的字节序。
  • 这意味着 PHP 将按照它运行的底层机器使用的任何顺序打包,这意味着打包将使用完全相同的代码在不同的平台上产生不同的结果。
  • @MarcB 所以,对于 unpack() 这不影响?

标签: php pack


【解决方案1】:

pack 中,短语“机器字节顺序”表示字节顺序由当前机器1

PHP 本身不保证这些字符(例如SL)对数据进行编码,除非顺序与当前机器有关.

因此,如果有任何疑问,请谨慎使用“机器字节顺序”包装字符并考虑 保证顺序 对应部分(例如 nv1。但是,请注意目标数据规范,因为某些愚蠢的格式(例如 [Microsoft] UUID)是按照“机器字节顺序”排列的,而其他格式总是大端或小端。


1 x86/x64 始终是 little-endian,但 PHP 在技术上可以在 big-endian 机器上运行 .. 某处。最好养成明确和精确的习惯,以免以后代码突然神秘地“停止工作”。

【讨论】:

    猜你喜欢
    • 2022-10-31
    • 2011-04-30
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 2013-10-26
    • 2010-12-29
    • 2014-09-20
    • 1970-01-01
    相关资源
    最近更新 更多