本文只举例了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;
}
本文详细介绍了如何通过位操作将4bit数据进行重新排列,转换为8bit数据。提供的C语言实现将数据的高4位和低4位分别进行翻转,适用于二进制数据处理和理解位操作技巧。
4万+

被折叠的 条评论
为什么被折叠?



