我有一個設備,並且我有一些用戶在GUI中設置的值,如630
330
等。我需要將這些值傳遞給I2C字節。 583將以十六進制位爲02 47
。這將是2個字節的變量,我需要調用Set(byte lower ,byte upper)
,以便將int或double值轉換爲2個字節是必需的。轉換爲低位和高位
我想:
ushort R1x = (ushort)Rx;
byte upper = (byte)(R1x >> 8);
byte lower = (byte)(R1x & 0xff);
我需要的是低= 47,上= 02
即給予lower = 0
和upper = 247
..May我知道我做錯了什麼
嘗試它爲'ushort Rx = 245 * 256 + 130;'並且正常工作。也許給更多的代碼? –
我沒有得到你所說的。我實際上錯過了邏輯。 – Zigma
你從16位值中獲取高8位和低8位的方法是正確的,但是你仍然得到錯誤的'lower'和'upper',IMO會出現一些令人意想不到的'R1x'值。 –