编写一个C程序对16位整数进行倒序排列.

 

编写一个C程序对16位整数进行倒序排列
比如1101 1100 1000 0101 (0xDC85)
倒序1010 0001 0011 1011 (0xA13B)
我没想到什么好方法。基本上就是取得某一位,然后放到应该放的位置。
unsigned short m = 0xDC85; unsigned short j = 0; // 临时变量 unsigned short k = 0; // 存放最终结果 for (int i = 0; i < 16; ++i) { if (i < 8) { j = m & (1 << i); int z = 15 - 2 * i; j = j << z; } else { j = m & (1 << i); int z = 2 * i - 15; j = j >> z; } k = k | j; }  

 

你可能感兴趣的:(c)