BYTE changeByte(BYTE byte) {
byte = ((byte & 0xf0) >> 4) | ((byte & 0x0f) << 4);
byte = ((byte & 0xcc) >> 2) | ((byte & 0x33) << 2);
byte = ((byte & 0xaa) >> 1) | ((byte & 0x55) << 1);
return byte;
} 另外一种方法: dat = ((dat&0x01)<<7)|((dat&0x02)<<5)|((dat&0x04)<<3)|((dat&0x08)<<1)|((dat&0x10)>>1)|((dat&0x20)>>3)|((dat&0x40)>>5)|((dat&0x80)>>7);
还有方法:
- unsigned char Switch_bit(unsigned char InChar)
- {
- unsigned char bdata B; //在位寻址区定义字符变量B
- sbit B7=B^7;
- sbit B6=B^6;
- sbit B5=B^5;
- sbit B4=B^4;
- sbit B3=B^3;
- sbit B2=B^2;
- sbit B1=B^1;
- sbit B0=B^0;
- unsigned char bdata C; //在位寻址区定义字符变量C
- sbit C7=C^7;
- sbit C6=C^6;
- sbit C5=C^5;
- sbit C4=C^4;
- sbit C3=C^3;
- sbit C2=C^2;
- sbit C1=C^1;
- sbit C0=C^0;
- C = InChar;
- B0=C7;
- B1=C6;
- B2=C5;
- B3=C4;
- B4=C3;
- B5=C2;
- B6=C1;
- B7=C0;
- return B;
- }