我有一个16位字,可以是1到16个数据值。通过知道16位字的MSB和lsb并抓取这些位来解码它们。
我正在使用VB而我只是不知道该怎么做。
实施例
我有一个词是
&安培; HA6F2
1010 0100 1111 0010
我知道我的数据是LSB 3到MSB 9.位排序是从左到右 所以数据是010011
如何在VB代码中获得此功能?我想以字节为单位工作,因为在得到打包后我必须对其进行类型转换(signed_fixed,integer,2的补码等)
由于
答案 0 :(得分:1)
您应该使用mask
(按位 AND,请参阅And
关键字)。也可能按位右移(参见>>
运算符)
概念:
1010 0100 1111 0010 '= the data
0001 1111 1100 0000 '= 1FC0 the mask
-------------------- And
0000 0100 1100 0000 '= 04C0
-------------------- >> 6
0000 0000 0001 0011 '= 0013 now your value is in the right most
在代码中
Dim newData As Integer = (rawData And &H1FC0) >> 6