回答
也许做一个模256表达式(如果无符号)或模256和负128
$val = ($val % 256) - 128
这个工作,如果你只想要一个值。如果你想要一个真正的一个字节,也许pack()函数将在这里帮助。
编辑:对,0将是128,所以也许这个解决方案将做的工作:
$val = (($val+128) % 256) - 128
你不能。 PHP没有像Java那样的数据类型byte
。
不要告诉我你不能在PHP中这样做。它可能并不简单,但它绝对是可行的。 – 2010-07-29 10:53:14
@Peter:你如何转换为不存在的数据类型? – 2010-07-29 10:56:11
他并不关心使用的实际数据类型。他希望在java – gnud 2010-07-29 10:59:46
echo ($a&0x7f) + ($a&0x80?-128:0);
编辑这种模仿我应该实际发生的符号的8位值。当MSB(位7)为零时,我们只有这7位的值。 MSB设置为1时,我们从-128开始(即1000000b == -128d
)。
你也可以利用PHP使用内部整数值的事实:
$intsize = 64; // at least, here it is...
echo ($a<<($intsize-8))/(1<<($intsize-8));
所以你却将字节为PHP看到它的INT的MSB位置的最高位,即你加56个零位在右边。该部门“剥离”这些位,同时保持值的符号。
- 1. PHP格式字节转换为Javascript
- 2. 将字节转换为GB,位于php
- 3. 字符串转换为字节转换
- 4. 转换vb.net字节到PHP
- 5. 将千字节转换为PHP中的字节数
- 6. 从字节转换为7位字节
- 7. 无法从字节[]转换为字节
- 8. 如何将字节[]转换为字节[]
- 9. 将字符串[]转换为字节[] 2个字符转换为字节?
- 10. 将字节转换为位
- 11. 将字节[]转换为int
- 12. 转换字节[]为简短[]
- 13. 将IRandomAccessStreamWithContentType转换为字节[]
- 14. 将字节[]转换为SAFEARRAY
- 15. 将字节[]转换为Int8
- 16. 将FloatBuffer []转换为字节[]
- 17. 将字节转换为SByte
- 18. 将字节[]转换为PDF
- 19. char转换为字节? (JAVA)
- 20. 从字节[]转换为串
- 21. 将NSData转换为字节
- 22. 将DataHandler转换为字节[]
- 23. 将字节[]转换为JsonObject
- 24. IntPtr转换为字节[] c#
- 25. 将字节转换为字节到字节
- 26. 将字节数组转换为PHP中的字符串
- 27. 将Int转换为4字节的PHP字符串
- 28. 将字符串转换为字节[]
- 29. Java - 将字节[]转换为字符串
- 30. 将字节转换为字符串
so ... 0将是-128?奇。 – mvds 2010-07-29 10:58:21
(13020%256) - 128将不会退回一个-36, 我得到-128而不是 – shay 2010-07-29 11:00:37
@shay:你应该至少得到'92'这是'-36'模'128' – 2010-07-29 11:01:45