Странно, но ни в книге, ни в инете не нашел, каким образом в Vb.net можно работать с битами. Есть ли какие-нить встроенные функции...
Можно ли преобразовать строку "Hello World" в последовательность битов?
'преобразование в строку, содержащую двоичное представление числа 54
bin = Convert.ToString(54, 2)
'преобразование в строку, содержащую шестнадцатиричное представление числа 54
hex = Convert.ToString(54, 16)
'''<summary>Битовый массив для работы с клавиатурой</summary>
'''<remarks>0 - Первый или не первый раз нажата клавиша
''' 1 - Была-ли нажата "."
''' 2 - После "." один раз нажата клавиша
''' 3 - После "." второй раз нажата клавиша
'''</remarks>
Private c_byteKey As New Collections.BitArray(4, False)
.............
.............
.............
'''<summary>Нажатие кнопки "3"</summary>
Private Sub btn_3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btn_3.Click
If Me.c_byteKey.Item(1) Then ' Была нажата "."
If Me.c_byteKey.Item(2) Then ' После "." нажималась цифра
If Me.c_byteKey.Item(3) Then ' После "." два раза нажималась цифра
Beep() ' Выдать сигнал ошибки
Else
Me.Summ_customer = Me.Summ_customer + 0.03D ' Провести пересчет
Me.c_byteKey.Item(3) = True ' Поднять флаг "второе нажатие" после "."
End If
Else
Me.Summ_customer = Me.Summ_customer + 0.3D ' Провести пересчет
Me.c_byteKey.Item(2) = True ' Поднять флаг "первое нажатие" после "."
End If
Else
If Me.c_byteKey.Item(0) Then ' Клавиши уже нажимались
Me.Summ_customer = Me.Summ_customer * 10I + 3D ' Провести пересчет
Else
Me.Summ_customer = 3D ' Провести пересчет
Me.c_byteKey.Item(0) = True ' Взвести флаг "первое нажатие" цифры
End If
End If
End Sub 'btn_3_Click()
Dim Summ As Decimal
Dim B As Byte = 0 ' [0-15]
Private Sub btn_3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btn_3.Click
Select Case B
Case 0, 4, 8, 12 : Summ = 3@ : B = B Or 1 'bit0=false: bit1=false: bit2=any: bit3=any
Case 1, 5, 9, 13 : Summ *= 10@ + 3@ 'bit0=true: bit1=false: bit2=any: bit3=any
Case 2, 3, 10, 11 : Summ = 0.3@ : B = B Or 4 'bit0=any: bit1=true: bit2=false: bit3=any
Case 6, 7 : Summ = 0.3@ : B = B Or 8 'bit0=any: bit1=true: bit2=true: bit3=false
Case 14, 15 : Beep() 'bit0=any: bit1=true: bit2=true: bit3=false:
End Select
End Sub
Сейчас этот форум просматривают: Google-бот и гости: 3