天天看點

二進制整數的倒序

//位的倒序
uint8 bin8_rev(uint8 data) 
{ 
    data=((data&0xf0)>>4) | ((data&0x0f)<<4); 
    data=((data&0xCC)>>2) | ((data&0x33)<<2); 
    data=((data&0xAA)>>1) | ((data&0x55)<<1); 
    return data; 
}
           
//16位的倒序:
static INT16U BitChange(INT16U us_DataIn)
{
INT16U us_Data = us_DataIn;
us_Data = ((us_Data & xFF00) >> ) | ((us_Data & 0x00FF) << 8);
us_Data = ((us_Data & xF0F0) >> ) | ((us_Data & 0x0F0F) << 4);
us_Data = ((us_Data & xCCCC) >> ) | ((us_Data & 0x3333) << 2);
us_Data = ((us_Data & xAAAA) >> ) | ((us_Data & 0x5555) << 1);

return (us_Data);
}
           
//32位的倒序
#include <iostream>
using std::cin;
using std::cout;
typedef unsigned int UINT32;
void main(){
    UINT32 x;
    x = (x & ) <<   | (x & ) >>  ;
    x = (x & ) <<   | (x & ) >>  ;
    x = (x & ) <<   | (x & ) >>  ;
    x = (x & ) <<  | (x & ) >> ; 
}
           
c++

繼續閱讀