如何将数据的bit排序颠倒排列

本文详细介绍了如何通过位操作将4bit数据进行重新排列,转换为8bit数据。提供的C语言实现将数据的高4位和低4位分别进行翻转,适用于二进制数据处理和理解位操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文只举例了4bit的重新排列算法,可以依此类推8bit的数据排列算法

/**
 * 重新排列bit位,4bit一个单元转换
 * @param->src: 需要转换的数据
 * @return: 返回转换后的数据
 * @detail:
 *      高4位和低4位分开单独转换,
 *      比如:
 *          输入:0x57 -> 0101 0111b
 *          输出:0xae -> 1010 1110b
*/
uint8_t reverseBitOrderHalfByte(uint8_t src)
{
	int8_t i ,j= 0;
	uint8_t ret = 0;
	//低4位
	for(i = 3; i >= 0; i --)
	{
		ret |= (!!(src & (1 << i))) << (3 - i);
	}
	//高4位,4 5 6 7
	//      7 6 5 4
	for(i = 4, j = 7; i < 8; i ++, j --)
	{
		ret |= (!!(src & (1 << j))) << (i);
	}
	return ret;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值