求一个数的二进制从左到右翻转后的值
来源:互联网 发布:python openwrt 模拟 编辑:程序博客网 时间:2024/06/07 22:23
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
首先要求一个数的二进制,然后把它存入数组中,n&1就是这个数最低位的二进制,然后把n右移一位可以求出倒数第二位的二进制,不断进行循环,直到求出n的最高位的二进制。次时数组中存的就是这个数由低位到高位的二进制,只需把这个数转换为10进制即可。转换10进制,最低位乘以2的0次方,最高位乘以2的31次方就可求出10进制数。代码如下
#include<stdio.h>#include<stdlib.h>#include<math.h>unsigned int reverse_bit(unsigned int value){ int bin[32] = { 0 }; int i = 0; unsigned int tmp = 0; unsigned int sum = 0; for (i = 0; i < 32; i++) { bin[i] = value & 1; value >>= 1; } for (i = 0; i <32; i++) { tmp = (unsigned int)pow(2, i) * bin[31-i]; sum += tmp; } return sum;}int main(){ unsigned int n = 25; printf("%u", reverse_bit(n)); system("pause"); return 0;}
阅读全文
1 0
- 求一个数的二进制从左到右翻转后的值
- 【C语言】求一个数的二进制位模式从左到右翻转后对应的十进制值。
- 俩种方法实现一个数的二进制位模式从左到右翻转后的值
- C语言实现一个数的二进制位模式从左到右翻转后的值
- 求一个数转化为二进制后1的个数
- 把一个十进制数的二进制形式翻转,并输出翻转后所对应的十进制数
- 求一个数的二进制
- 编写函数返回值value的二进制模式从左到右翻转后的值
- 【C语言】 求一个数的二进制反转后的值
- 二进制位从左到右翻转后的值
- leetcode_190. Reverse Bits 比特流反转,求十进制数的32位二进制串翻转后对应的十进制数,二进制与十进制转换
- 求一个数的二进制的位数
- 求一个二进制数的十进制(4)
- 求一个数二进制1的中
- 求一个数二进制1的个数
- 编写一个函数的返回值value的二进制位模式从左到右翻转后的值
- 对一个二进制的每位进行0和1反转,求反转后的二进制所对应的十进制数
- 思维启发之求一个数后八位二进制1的个数
- nginx 基本入门(至今为止见过最好的 nginx 入门文章,没有之一。)
- 三字母词
- Java中常用的代码汇总
- 时间复杂度
- momgo内嵌数组
- 求一个数的二进制从左到右翻转后的值
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- vue favicon.ico正确显示
- Java RTTI和反射机制
- spring mvc restful 传入List
- PHP 数组
- Spring boot 配置Servelt、Filter、Listener
- 高精度计算——加法&&减法
- 剑指offer:数组中出现次数超过一半的数字