Hom*_*der 6 php binary endianness php-5.3
在C#中,我可以通过以下代码片段获得字节序类型:
if(BitConverter.IsLittleEndian)
{
// little-endian is used
}
else
{
// big-endian is used
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在PHP中做同样的事情?
PHP的字符串类型是一个8位二进制字符串,一个char序列.它没有字节序.因此,在大多数情况下,字节顺序在PHP中不是问题.
如果需要以特定的字节顺序准备二进制数据,请使用pack()和unpack()函数.
如果您需要确定机器的本机字节序,则可以使用pack()并unpack()以相同的方式使用.
function isLittleEndian() {
$testint = 0x00FF;
$p = pack('S', $testint);
return $testint===current(unpack('v', $p));
}
Run Code Online (Sandbox Code Playgroud)
function isLittleEndian() {
return unpack('S',"\x01\x00")[1] === 1;
}
Run Code Online (Sandbox Code Playgroud)
Little-endian系统将最低有效字节存储在最小(最左侧)地址中.因此1,打包为"短"(2字节整数)的值应将其值存储在左侧字节中,而大端系统将其存储在右侧字节中.
| 归档时间: |
|
| 查看次数: |
4429 次 |
| 最近记录: |