C语言实现一个数的二进制位模式从左到右翻转后的值
来源:互联网 发布:半岛雪人 mac 编辑:程序博客网 时间:2024/06/06 02:00
C语言实现一个数(32位)的二进制位模式从左到右翻转后的值,如0x1转化后为0x80000000;
第一种,取出num的每一位(与0x1按位与),然后或运算加到ret的后面,然后移位。
#include <stdio.h>#include <string.h>unsigned int reverse(unsigned int num){ //TODO: int ret = 0; int i = 0; for (i = 0; i < 32; i++) { ret = ret << 1; //printf("i1=%d %08x\n",i,ret); ret = ret | (num >> i) & 1; //printf("i2=%d %08x\n",i,ret); } return ret;}int main(int argc, char *argv[]){ unsigned int num = 0; unsigned int ret = 0; if (1 != fscanf(stdin, "0x%x", &num)) { fprintf(stderr, "input error\n"); return 0; } ret = reverse(num); printf("%08x\n", ret); return 0;}
第二种运用权重来做,左右翻转就相当于这个数的二进制数的最高位由value*2^31变为value*2^0,变为最低位即可。
阅读全文
0 0
- C语言实现一个数的二进制位模式从左到右翻转后的值
- 【C语言】求一个数的二进制位模式从左到右翻转后对应的十进制值。
- 俩种方法实现一个数的二进制位模式从左到右翻转后的值
- 用c语言实现 一个数二进制位从左到右的翻转
- C语言:编写函数将一个整数的二进制位模式从左到右翻转后的值输出
- C语言 函数返回 值value的二进制位模式从左到右翻转后的值。
- C语言实现 一个数二进制位模式从左到右翻转 reverse_bit
- 编写一个函数的返回值value的二进制位模式从左到右翻转后的值
- 二进制位从左到右翻转后的值
- 编写函数实现二进制位从左到右翻转后的值
- 【C语言】编写函数 unsigned int reverse_bit(unsigned int value); 这个函数的返回值吧value的二进制位模式从左到右翻转后的值。
- C语言 编写函数 unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
- 将一个数的二进制位模式从左到右翻转并输出
- 二进制位模式从左到右的翻转
- 这个函数的返回 值value的二进制位模式从左到右翻转后的值。
- 函数的返回值value的二进制位模式从左到右翻转后的值
- 这个函数的返回值value的二进制位模式从左到右翻转后的值。
- 编写程序,输出为返回 值的二进制位模式从左到右翻转后的值
- Error:Execution failed for task :app:transformClassesWithInstantRunForDebug解决方案
- [leetcode] 367. Valid Perfect Square
- c++虚函数
- lintOptions引起的Execution failed for task ':mobile:lint'.编译错误
- C# 多态典型练习题
- C语言实现一个数的二进制位模式从左到右翻转后的值
- 深度学习——提高网络性能(一)
- HDU 6092 Rikka with Subset(思维)
- Java实现CORS跨域请求
- 真正一键开启PPTP、L2TP两种VPN服务,经测试兼容centos 6 7 、ubuntu 14 16、debian 8,32位64位,一次爽到底!
- Hibernate学习之旅
- Tensorflow之数据类型
- 正则表达式学习之回溯与固态分组/php
- C#事件与委托