data=((data<<1)&0xaa)|((data>>1)&0x55); 之后序列为1 0 0 1 1 0 1 0 更抽象的来说 原始位为1 2 3 4 5 6 7 8 data=(data<<4)|(data>>4); 之后位序为5 6 7 8 1 2 3 4data=((data<<2)&0xcc)|((data>>2)&0x33); 之后位序为 7 8 5 6 3 4 1 2data=((data<<1)...
题目很简单,但考察的是面试者的编程习惯和态度。今天闲来无事,多说几句。题目理解为高半字节和低半字节互换: 最好用宏定义 #define CHG_BYTE(bData) (((bData)4)) 注意,1、这种底层操作一般用宏可以增强程序的效率,避免不必要的函数调用开...3167 ...
(A&0x04)<<3 | (A&0x08)<<1 | \ (A&0x10)>>1 | (A&0x20)>>3 | \ (A&0x40)>>5 | (A&0x80)>>7 优先及问题.
由此完成了整个位的逆序转换,下面是具体的实现代码: 1unsigned char shift_fun2(unsigned chardata)2{3data=(data<<4)|(data>>4);4data=((data<<2)&0xcc)|