反序列輸出 意思是 比如數值 0xaa (二進制 1010 1010),輸出爲 0x55(二進制 0101 0101).
先上函數
unsigned char Reverse(unsigned char _char)
{
unsigned char data aa = 0x00;
unsigned char data bb = 0x00;
unsigned char data cc = 0x00;
unsigned char i;
aa = _char;
for (i = 0; i < 7; i++)
{
bb = aa & 0x01;
cc |= bb;
aa >>= 1;
cc <<= 1;
}
bb = aa & 0x01;
cc |= bb;
return cc;
}
注意啊,如果Keil 的memory Model 設置爲 Xdata.,aa bb cc變量前不加 data 關鍵字那麼這個函數值就是錯的。位移就出錯了。找了半天原因,我說邏輯沒錯啊。哇哈哈。
具體去搜下 Keil的memory model 設置意義。