二进制整数的倒序

//8位的倒序
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 & 0xFF00) >> 8) | ((us_Data & 0x00FF) << 8);
us_Data = ((us_Data & 0xF0F0) >> 4) | ((us_Data & 0x0F0F) << 4);
us_Data = ((us_Data & 0xCCCC) >> 2) | ((us_Data & 0x3333) << 2);
us_Data = ((us_Data & 0xAAAA) >> 1) | ((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 & 0x55555555) <<  1 | (x & 0xAAAAAAAA) >>  1;
    x = (x & 0x0F0F0F0F) <<  4 | (x & 0xF0F0F0F0) >>  4;
    x = (x & 0x00FF00FF) <<  8 | (x & 0xFF00FF00) >>  8;
    x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值