位运算复习——字节的奇偶校验和反转一个字节中的二进制位
2015-04-15 12:39
344 查看
#include <stdio.h> #include <stdint.h> /** * 用软件实现字节的奇偶校验 * 返回值:如果这个字节中含有奇数个1,则返回1; * 否则返回0 */ uint8_t parityCheck(uint8_t val) { uint8_t cnt = 0; while (val) { if (val & 0x01) cnt++; val >>= 1; } return cnt & 0x01; } /** * 反转一个字节中的二进制位 * 实现方法:类似归并排序 */ uint8_t reverse_bits(uint8_t val) { val = ((val & 0xAA) >> 1) | ((val & 0x55) << 1); val = ((val & 0xCC) >> 2) | ((val & 0x33) << 2); val = (val >> 4) | (val << 4); return val; } void main() { printf("%u\n", parityCheck(0xD2)); //0 printf("%X\n", reverse_bits(0xD2)); //4B }
相关文章推荐
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法(ZZ)
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法(ZZ)
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法
- 反转一个字节和判断32位整数二进制中1的个数等算法
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法
- (转贴)反转一个字节 和 判断32位整数二进制中1的个数 的算法
- (转贴)反转一个字节 和 判断32位整数二进制中1的个数 的算法
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法(ZZ)
- 对于一个字节(8bits)的变量,求其二进制表示中“1”的个数
- 位运算-Number of 1 Bits(求一个十进制数字,它的二进制表示中有多少个 1(bit))
- 笔试题--反转一个字节
- 经典:反转一个字节
- 用位运算反转一个字节
- [转载] C++位运算:将一个4字节整数的二进制表示中的001替换为011
- 对一个二进制的每位进行0和1反转,求反转后的二进制所对应的十进制数
- 实现把一个无符号数的二进制位模式从左到右反转后输出。例如:在32位机器下,把25,0~011001变成100110~0
- 对于一个字节(8bit)的变量,求二进制表示中"1”的个数,要求算法的执行效率尽可能的高
- 反转一个字节的算法
- 位运算之统计一个整数的二进制中1的个数