reverse_bits(二进制的数值转换)
2012-04-23 17:48
141 查看
#include <stdio.h> unsigned int reverse_bits(unsigned int value); int main() { unsigned int temp = 2550136832; unsigned int result; result = reverse_bits(temp); printf("%u\n",temp); return 0; } unsigned int reverse_bits(unsigned int value) { unsigned int answer; unsigned int i; answer = 0; for (i = 1; i != 0; i <<= 1) { answer <<= 1; if (value & 1) { answer |= 1; } value >>= 1; } return answer; }
函数中i不是0,这就使循环与机器的字长无关,从而避免了可移植性问题
for循环中主要实现如下功能;
1.把旧的answer左移1位,为下一个位留下空间
2.如果value的最后一位是1,answer就与1进行or操作
3.然后将value右移至下一个位
相关文章推荐
- T-SQL编写程序,将十进制数值转换为二进制字符串后输出
- Scale计算公式 - 关于电压值与二进制数值间的转换
- leetcode_190. Reverse Bits 比特流反转,求十进制数的32位二进制串翻转后对应的十进制数,二进制与十进制转换
- 数值转换:十进制正整数转二进制
- labview中位正则表达式使用和字符串二进制数值互相转换
- byte、二进制、十进制数值之间的转换
- java数值类型与二进制byte数组之间的转换
- 将二进制数值转换为十进制
- 二进制数值转换成十六进制
- byte、二进制、十进制数值之间的转换
- 数值转换(十进制转换为二进制)
- (基础四)进制转换,输出整型数值低四位二进制数据
- C# 将二进制数据转换成BASE64字符串的方法
- ASCII字符转换成二进制形式的字符串
- 简单的利用栈 将二进制转换成十进制
- 将二进制深度图转换成OpenCV的Mat格式
- 位运算实现 十进制(正负)转换成二进制
- 数值转换为String(std::to_string)
- Python-二进制字符串转换为整形的几种方法
- 小数 二进制 的 表示与转换