读书人

位操作解决思路

发布时间: 2013-08-04 18:26:16 作者: rapoo

位操作
有两个数字,第一数字是5个字节(用byte数组保存), 第2个数字用16位的short保存

取第一个数字里的某些位(一共取16位)看,对第二个数字赋值,如何做?


比如我要去除第一个数字的1,2个bit位,对第二个数字的,第0,1位赋值,如何做?

[解决办法]


b &= ~3;
b
[解决办法]
= (a[0] >> 1) & 3;


引用:
Quote: 引用:


unsigned char a[5];
unsigned short b;
...
b = a[0]
[解决办法]
(a[1] << 8);


不对额, 我说的是第一1个字节的第1位,第2位 ,取出这2位来赋值给 b的 第0为何第1位。

读书人网 >C++

热点推荐