二进制整数的倒序

来源:互联网 发布:自学英语口语的软件 编辑:程序博客网 时间:2024/05/17 04:21
//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; }
0 0
原创粉丝点击