Чтение и изменение бита в числе - VB

Формулировка задачи:

Доброго времени суток! Столкнулся с такой проблемой - через СOM порт от контроллера получаю массив байт данных, сохраняю их в виде переменной Double.
Case Is = 2         
        intInf(0) = Asc(MSComm1.Input) '
        intInf(1) = Asc(MSComm1.Input) ' 
        intInf(2) = Asc(MSComm1.Input) ' 
        intInf(3) = Asc(MSComm1.Input) ' 
       ' и т.д
Каждый установленный бит в числе имеет смысловую нагрузку. Вопрос -каким образом можно обращаться к отдельным битам в числе (Аналог команды в ассемблере setb Acc.N (установить бит N в "1") и clr Acc.N (установить бит N в "0")). Пока что додумался только до преобразования полученного числа в бинарный вид при помощи функции
Public Function ToBin(ByVal bByte As Byte) As String
Dim i As Integer
For i = 0 To 7
If bByte And 2 ^ i Then
ToBin = 1 & ToBin
 Else
ToBin = 0 & ToBin
 End If
Next i
End Function

Код к задаче: «Чтение и изменение бита в числе - VB»

textual
Private Sub Form_Load()
    Dim b As Long
    Dim index As Long
    ' Работаем с 3-м битом (индексация от 0)
    index = 3
    ' Установить бит
    b = b Or (2 ^ index)
    ' Сбросить бит
    b = b And Not (2 ^ index)
    ' Инвертировать бит
    b = b Xor (2 ^ index)
    
End Sub

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

11   голосов, оценка 4.273 из 5


СОХРАНИТЬ ССЫЛКУ