回答
也許做一個模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