我有一個16位無符號整數,它的值是這樣的:如何在VB.NET中移位Ushort 16位整數中的位?
byte_val1 = 1000000000000001
從這個我需要右移這一點,使它像這樣:
1100000000000000
我已經做到了這一點:
byte_val1 = byte_val1 >> 1
and getting byte_val1 = 100000000000000
。
之後,我做了
byte_val1 = byte_val1 Or &H80
,但我沒有得到期望的結果......相反,我得到了100000010000000
。
那麼我應該怎麼做才能得到這個結果呢?
這將始終追加1到左側。如果你的最右邊的位是0呢?您可能想使用掩碼而不是'&H8000',它最初等於'byte_val1和&H8000'。然後執行'byte_val1 = byte_val1或者mask'。 – Neolisk 2013-07-27 19:27:31