Как я могу сделать побитовую операцию И в VB.NET? - PullRequest
4 голосов
/ 28 октября 2010

Я хочу выполнить операцию побитового «И» в VB.NET, взяв короткую (16-битную) переменную и добавив в нее «0000000011111111» (сохраняя при этом только младший байт / 8 наименее значимых бит).

Как я могу это сделать?

Ответы [ 3 ]

11 голосов
/ 28 октября 2010

0000000011111111, представленный в виде шестнадцатеричного литерала VB, является & HFF (или & H00FF, если вы хотите быть явным), а обычный оператор AND равен на самом деле побитовый оператор .Таким образом, чтобы замаскировать верхний байт Short, вы должны написать:

shortVal = shortVal AND &HFF

Более творческие способы получения двоичной константы в VB см .: VB.NET Назначение двоичной константы

2 голосов
/ 28 октября 2010

Используйте оператор And и запишите литерал в шестнадцатеричном формате (простое преобразование из двоичного кода):

theShort = theShort And &h00ff

Если то, что вы на самом деле пытаетесь сделать, это разделить короткое число на байты, есть встроенный метод для этого:

Dim bytes As Byte() = BitConverter.GetBytes(theShort)

Теперь у вас есть массив с двумя байтами.

0 голосов
/ 28 октября 2010
result = YourVar AND cshort('0000000011111111')
...