压缩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;