读书人

C语言位操作!该如何解决

发布时间: 2012-06-19 14:45:20 作者: rapoo

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;
[解决办法]

探讨

s[0] = s[0] & 0x0F;
int i = 0;
memcpy(&i, s, 2);

[解决办法]
探讨
s[0] = s[0] & 0x0F;
int i = 0;
memcpy(i, s, 2);

读书人网 >C语言

热点推荐