Ari*_*Das 2 vb.net 16-bit 8-bit
我有一个像这样的16位值:
0000000000000011
Run Code Online (Sandbox Code Playgroud)
我想将它分成两个8位值,如:
00000000 and 00000011
Run Code Online (Sandbox Code Playgroud)
16位值是一个变量byte_val1,它是无符号的16位整数.
我怎么能在VB.NET中做到这一点?
你可以使用这个BitConverter类:
Dim bytes As Byte() = BitConverter.GetBytes(byte_val1)
Run Code Online (Sandbox Code Playgroud)
现在bytes(0)包含低位字节(00000011)并bytes(1)包含高字节(00000000).
要获得低8位,你需要和它一起使用11111111,或者0xff
要获得高8位,你需要和它一起使用1111111100000000,或者0xff00
然后算术左移恰好是8位.
我有一段时间没有做过Visual Basic,但想法如下:
word a = 1930392;
byte alower = a & 0xff;
byte ahigher = (a & 0xff00) >> 8;
Run Code Online (Sandbox Code Playgroud)
哦,这是我与三个文本框命名做了代码a,alower,aupper和一个按钮btnDoIt:
Private Sub btnDoIt_Click(sender As Object, e As EventArgs) Handles btnDoIt.Click
Dim localA = Integer.Parse(a.Text())
Dim localALower = localA And &HFF
Dim localAUpper = (localA And &HFF00) >> 8
alower.Text = localALower
aupper.Text = localAUpper
End Sub
Run Code Online (Sandbox Code Playgroud)
旁注:(localA And &HFF00) >> 8是公平的(localA >> 8) And &HFF
| 归档时间: |
|
| 查看次数: |
12766 次 |
| 最近记录: |