对二进制数据处理。

2019-07-18 00:32发布

目前有个关于二进制数据处理的问题:
数据是双字节,也就是16bit,最高1位为符号位,实际上数据表示的只有13位,也就是高三位不用来做数据表示,
比如1110 0011 1001 1111,高三位111不是数据位。
有没有办法只通过位运算和逻辑运算的方式来去掉高三位数据呢?请教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
jick769331393
1楼-- · 2019-07-18 02:48
如果是带符号的16位数据你就用I16类型来表示就行了,如果要去掉高三位就把该数据跟0x1fff进行与操作就可以了。 最佳答案
NinthCode
2楼-- · 2019-07-18 08:13
不懂你说的去掉是什么意思???怎么去掉把他变成0算是去掉吗
tonychen899
3楼-- · 2019-07-18 11:55
 精彩回答 2  元偷偷看……
jick769331393
4楼-- · 2019-07-18 15:25
tonychen899 发表于 2016-4-25 13:21
你说的对,另外,如果说计算符号位的话,采用逻辑以为来判断高位是0或者1.有没有效率更高的方法。

你用I16数值控件做显示控件就可以看出数据是正负了,我不明白你想表达什么
tonychen899
5楼-- · 2019-07-18 15:30
jick769331393 发表于 2016-4-25 13:31
你用I16数值控件做显示控件就可以看出数据是正负了,我不明白你想表达什么

嗯,我想知道,转换和逻辑以为哪个效率更高,应为要处理的数据量非常大。我还是选择逻辑移位

一周热门 更多>