我有一個int
,我想寫它的值到最重要的8位。例如,值89應該成爲10110010 00000000
在MSB上寫入16章
這是我要做的事:
valueToWrite = myVal << 8 | valuetToWrite & 0xf;
我怎麼能讀回原來的價值?
我有一個int
,我想寫它的值到最重要的8位。例如,值89應該成爲10110010 00000000
在MSB上寫入16章
這是我要做的事:
valueToWrite = myVal << 8 | valuetToWrite & 0xf;
我怎麼能讀回原來的價值?
爲了回讀左移之後的原始值(<<
),只需向右移回數值即可。
myVal = valueToWrite >>> 8;
>>>
運算符將值右移,並將零傳遞到最高有效位。
嗯......非常奇怪......我寫了從第8位到第15位的值156.當我嘗試你的示例時,返回的值是16 777 116. – Josef
我懷疑你在創建'valueToWrite'的問題中描述的方法不是很準確。首先,你似乎已經將總共9個位置移動了89個位置,而不是8個位置,並且在按位或者第二個位置有一個有趣的遞歸。你究竟試過了什麼? [這裏](https://gist.github.com/c139d1b19d0ccad3335a918bae344d3c)是我正在談論的一個示範。 – gobernador
對不起,你是對的。我正在考慮簽名但寫作無符號。帖子發生改變 – Josef
你爲什麼要做'&0xf'? – Jesper