通過將字節與0x80進行或運算,我發送的字節總是小於127,並向客戶端發送1位標誌。JavaScript - 來自整數的負數字節
在客戶端,在JavaScript中,我有一個表示消息字節數的Array()(是的,它可能是愚蠢的,但我還沒有想出類型化數組)。
一切工作正常,直到我擊中最低字節集的最高位的數字。
Number: 0011 0101
flag: 1000 0000
---------
1011 0101
Stored as
integer in ???
JavaScript
我怎樣才能找回原來的字節(設置爲0的最高位),再加上標誌(由最高位的數值表示)?
例:
(server)
byte x = 90
x | 0x80
> -38
(client - JavaScript)
var x = -38
x^0x80
> -166
我如何獲得90回來?
編輯 - 我發現這是由於我的代碼中的另一個bug ......我不會瘋狂與編碼...對不起...所有
對不起,沒有完全理解這個問題。我是否正確地認爲你只是試圖將單個字節「拆分」爲7位值和1位值? – freefaller
是的,但它不再是一個字節,它是某種JavaScript編號。與0x80異或仍導致負數。 – user202987
你可以顯示產生負數的代碼嗎?這對我有用:'num = parseInt('10110101',2)^ 0x80'和'flag = parseInt('10110101',2)&0x80!== 0' – tjameson