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

压缩BCD码 有关问题 求解

2013-07-08 
压缩BCD码 问题 求解有一串字符串 s[0]0xfds[1]0xffs[2]0xfds[3]0xffs[4]0x1ds[5]0xffs[6]0x

压缩BCD码 问题 求解
有一串字符串 
s[0]=0xfd;
s[1]=0xff;
s[2]=0xfd;
s[3]=0xff;
s[4]=0x1d;
s[5]=0xff;
s[6]=0x80;
s[7]=0x1f;

想把s[4]和s[6]的前4位 替换掉s[1],s[3]的后4位,s4和s6的后四位补0,转换后得出的结果为
s[0]=0xfd;
s[1]=0xf1;
s[2]=0xfd;
s[3]=0xf8;
s[4]=0xd0;
s[5]=0xff;
s[6]=0x00;
s[7]=0x1f;

解决思路和代码都可以,哈哈,先谢谢大家 。
[解决办法]

s[1] = s[1]&0xF0 + ((s[4]&0xF0)>>4);
s[3] = s[3]&0xF0 + ((s[6]&0xF0)>>4);

s[4] = s[4]<<4;
s[6] = s[6]<<4;

[解决办法]
类似这样的方法:

s[1] &= 0xf0;
s[1] 
[解决办法]
= s[4] & 0x0f;
s[4] &= 0x0f;
s[4] 
[解决办法]
= s[1] & 0xf0;

[解决办法]
12楼已经解决,不多言!

热点排行