编写函数 unsigned int reverse_bit(unsigned int value); 这个函数的返回值吧value的二进制位模式从左到右翻转后的值。
2016-06-30 13:37
751 查看
题目描述:
unsigned int reverse_bits(unsigned int value);这个函数的返回值是把value的二进制位模式从左到右变换一下后的值。例如,在32位机器上,25这个值包含下列各个位:
00000000 00000000 00000000 00011001
函数的返回值应该是2 550 136 832,它的二进制位模式是:
10011000 00000000 00000000 00000000
方法一:
方法二:
unsigned int reverse_bits(unsigned int value)
{
unsigned int answer= 0;
unsigned int i;
/*把一个unsigned int 数字1一直左移,直到它变成全0的时候,也就得到了该机器内unsigned int的长度*/
for (i = 1; i != 0; i <<= 1) //参考《C和指针》,太妙了
{
answer <<= 1;
if (value & 1) { answer |= 1; }
value >>= 1;
}
return answer;
}
测试:
结果:
unsigned int reverse_bits(unsigned int value);这个函数的返回值是把value的二进制位模式从左到右变换一下后的值。例如,在32位机器上,25这个值包含下列各个位:
00000000 00000000 00000000 00011001
函数的返回值应该是2 550 136 832,它的二进制位模式是:
10011000 00000000 00000000 00000000
方法一:
unsigned int reverse_bit(unsigned int value) { unsigned int result = 0; int num = 0; int bit = 0; while (num <32) { bit = value & 1;//取出最低位 value >>= 1;//右移一位, result += bit<<(31-num); //32位( 0 到 31) num++; } return result; }
方法二:
unsigned int reverse_bits(unsigned int value)
{
unsigned int answer= 0;
unsigned int i;
/*把一个unsigned int 数字1一直左移,直到它变成全0的时候,也就得到了该机器内unsigned int的长度*/
for (i = 1; i != 0; i <<= 1) //参考《C和指针》,太妙了
{
answer <<= 1;
if (value & 1) { answer |= 1; }
value >>= 1;
}
return answer;
}
测试:
#include<stdio.h> int main() { // unsigned int val = 25; printf("反转后:%u",reverse_bit(25)); return 0;
结果:
相关文章推荐
- CEPH经常出现slow request的排查解决
- 在map中根据value获取key
- mui使用注意事项
- CSS3动画那么强,requestAnimationFrame还有毛线用?
- 【APIO2014】序列分割(sequence)
- codeforces 687C - The Values You Can Make 简单dp
- 关于Hibernate中创建ServiceRegistry对象时找不到ServiceRegistryBuilder对象的问题
- Android之IPC通信中的UID和PID识别
- NSValue的详解
- SQL中一种类似GUID值的函数实现
- IOS开发-UIView之动画效果的实现方法(合集)
- LeetCode Count Numbers with Unique Digits(计数问题)
- 动态计算UITableViewCell高度详解
- iOS UITableView(一)-纯代码创建UITableView,Cell点击事件,Cell左滑删除
- minigui 多级窗口例子
- java中continue到指定的for循环中
- 【iOS】CoreBluetooth5 作为 Central 时的数据读写(OTA 固件升级与文件传输)
- UITabBarController、TabBar背景颜色设置、TabBarItem颜色处理
- #147 – Use SetCurrentValue When You Want to Set A Dependency Property Value from Within a Control
- java中String、StringBuffer、StringBuilder的总结