C语言位操作!!!!!!!!!!!!!!!!!!!!!
char s[2]
s里面有2字节 也就是16位 如何将前4位置0 再转存位int型
这就是个char的位操作 不懂哦
[解决办法]
s[0] = s[0] & 0x0F;
int i = 0;
memcpy(i, s, 2);
[解决办法]
memcpy(&i, s, 2);
前面写错了
[解决办法]
你指的前4位是指哪个的前四位?先用&把前四位清0.然后定义一个Int为0.再使用或操作就可以了
[解决办法]
s[0] &= 0xF;前4Bit清0,保存后4Bit数据不变
WORD dw = *(WORD*)s; 为了不多取,先使用WORD转换.
int val = dw; //成功转换.
当然,如果你是要把 s看成一个WORD来操作,(这样存在大端小端问题)
WORD dw = *(WORD*)s;
dw &= 0xFFF;
int Val = dw;
[解决办法]