我正在處理從CCS轉換浮點數,它不符合IEEE標準(而不是符號位,指數,尾數,它們使用指數,符號位,Mantissa);我遇到了一些使用>>>
運算符的奇怪行爲。正確的邏輯/無符號移位插入1而不是0符號位
給出
byte byte1=(byte)0x8A; //10001010
byte byte2=(byte)(byte1>>>1); //11000101
由於>>>
指定它將插入0
,爲什麼我得到一個1
?
我可以對此進行編碼,只需手動翻轉一下,但我不想發現它是特定於平臺的。
在數字前加'0x'告訴JVM它是一個十六進制值(在這個例子中是0x8A),比Byte.decode簡單:)編輯:事實上,Byte.decode不起作用有... –
@亞歷山大科爾曼真實,並且很好。在這種情況下,我實際上並沒有這樣做,只是將它用於示例的目的。我收到的REAL'Byte'已經有'8A'了。謝謝。 – Sheriff
你必須投到字節(這是一個int);)但是好的 –