У меня есть 16 разрядное целое число без знака и его значения, как это:Как перенести биты в 16-битное целое число Ushort в VB.NET?
byte_val1 = 1000000000000001
От этого мне нужно сдвиг вправо это и сделать это так:
1100000000000000
Я сделал это:
byte_val1 = byte_val1 >> 1
и получение byte_val1 = 100000000000000
.
После того, что я сделал
byte_val1 = byte_val1 Or &H80
, но я не получил желаемого результата ... Вместо этого я получил 100000010000000
.
Итак, что мне делать, чтобы получить этот результат?
Это всегда добавляет 1 влево. Что, если ваш самый правый бит равен 0? Вы можете использовать маску вместо '& H8000', которая изначально равна' byte_val1 And & H8000'. Затем выполните 'byte_val1 = byte_val1 или маску'. – Neolisk