|
//dbh dbl
//转换前 0 0 0 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
//转换后 D4 D5 D6 D7 D8 D9 D10 D11 0 0 0 0 D0 D1 D2 D3
int BitCon(int x)
{
int tmp, new;
char i;
// x 右移十二次,把最低位拿到前面来
for(i = 0; i < 12; i++)
{
tmp = x & 0x0001; //取最低位
x = x>>1; //右移一位
x = tmp<<15 | x; //把原来最低位移到最高位
}
// 转完圈圈后,原来的值x 就转换成
// 0 0 0 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
// D3 D2 D1 D0 0 0 0 0 D11 D10 D9 D8 D7 D6 D5 D4
// 是不是跟你要的结果更近一步了?
// 现在要做的就是调一下方向
new = 0;
for(i = 0; i < 16; i++)
{
tmp = x & 0x0001; //取最低位
x = x>>1; //右移一位
new = new<<1 | tmp;//把x的每一个位拿到new上来,一位一位地凑齐
}
// 上机验证一下是不是你要的结果
// 我手头电脑没有测试环境,你自己测一下吧,不行也别骂我
return new;
} |
|