首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-06-19 
C语言位操作!!!!!!!!!!!!!!!!!!!!!char s[2]s里面有2字节也就是16位如何将前4位置0再转存位int型这就是个c

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);

热点排行