C语言 LSB->MSB,MSB->LSB转换

32位整型数据bit位高低转换

cpp 复制代码
unsigned int reverse(register unsigned int x)
{
	x = (((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));
	x = (((x & 0xcccccccc) >> 2) | ((x & 0x33333333) << 2));
	x = (((x & 0xf0f0f0f0) >> 4) | ((x & 0x0f0f0f0f) << 4));
	x = (((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8));
	return((x >> 16) | (x << 16));

}

16位整型数据bit位高低转换

cpp 复制代码
unsigned short reverse(unsigned short x)
{
	x = (((x & 0xaaaa) >> 1) | ((x & 0x5555) << 1));
	x = (((x & 0xcccc) >> 2) | ((x & 0x3333) << 2));
	x = (((x & 0xf0f0) >> 4) | ((x & 0x0f0f) << 4));

	return((x >> 8) | (x << 8));

}

8位整型数据bit位高低转换

cpp 复制代码
uint8_t reverse(uint8_t x)
{
    x = (((x & 0xaa) >> 1) | ((x & 0x55) << 1));  
    x = (((x & 0xcc) >> 2) | ((x & 0x33) << 2));  
    return((x >> 4) | (x << 4));  
}
相关推荐
haoly19892 小时前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
迎風吹頭髮3 小时前
UNIX下C语言编程与实践53-UNIX 共享内存控制:shmctl 函数与共享内存管理
服务器·c语言·unix
学Linux的语莫5 小时前
机器学习数据处理
java·算法·机器学习
R6bandito_5 小时前
STM32中printf的重定向详解
开发语言·经验分享·stm32·单片机·嵌入式硬件·mcu
逆小舟5 小时前
【C/C++】指针
c语言·c++·笔记·学习
earthzhang20215 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
迎風吹頭髮6 小时前
UNIX下C语言编程与实践63-UNIX 并发 Socket 编程:非阻塞套接字与轮询模型
java·c语言·unix
充哥单片机设计6 小时前
【STM32项目开源】基于STM32的智能家居安防系统
stm32·嵌入式硬件·智能家居
奔跑吧邓邓子7 小时前
【C语言实战(6)】解锁C语言循环密码:for循环实战探秘
c语言·实战·for循环
GilgameshJSS7 小时前
STM32H743-ARM例程15-RTC
c语言·arm开发·stm32·实时音视频