二进制位模式从左到右翻转(25~2550136832)

1.编写函数:
unsigned int reverse_bit(unsigned int value);
这个函数的返回值是value的二进制位模式从左到右翻转后的值。
如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832

#include<stdio.h>
#include<math.h>

unsigned int reverse_bit(unsigned int value)
{
    int sum = 0;
    int i = 0;
    for (i = 0; i < 32; i++)
    {
        sum += ((value >> i)&1)*(int)pow(2, 31 - i);//调用了math库中的pow函数(幂函数)
    }
    return sum;
}
int main()
{
    int num=0;
    printf("请输入一个无符号十进制整数:\n");
    scanf("%u",&num);
    int ret = reverse_bit(num);
    printf("二进制位模式从左到右翻转后的值=%u\n",ret);
    return 0;
}

原文地址:https://blog.51cto.com/14233078/2381677

时间: 2024-10-13 17:13:08

二进制位模式从左到右翻转(25~2550136832)的相关文章

写一个函数实现整数的二进制位模式从左到右翻转

如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832 思路:第1位逆转到了第32位->后整数的值为2^31(2的31次方)     第i位逆转到了第32-i位->后整数的值为2^(32-i)(2的(32-i)次方)*(n>>(i-1))&1 累加每一位逆转之后的值-->二进制

C语言编程 输出一个数二进制位模式从左到右翻转后的值

eg:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:2550136832 代码核心思想是将原来二进制序列最后一位看作反转后第一位,将原来二进制序列第一位看作反转后最后一位进行重新计算 比如15的2进制为 --0000 1111计算方法为12^1 + 12^2 + 12^3 + 12^4反转后为1111 0000--计算方法为12^3

这个函数的返回 值value的二进制位模式从左到右翻转后的值。

这一种是我自己想出来的方法,发现对二进制还是不太熟悉. #include<stdio.h> #include<stdlib.h> unsigned int  reverse_bit(unsigned int value) {  unsigned sum=0;  int i=0;  for(i=0;i<32;i++)  {   sum+=((value>>i)&1)<<(31-i);  }  return sum; } int main() {

二进制位模式从左到右翻转后的值

#include <stdio.h> #include <math.h> unsigned int  reverse_bit(unsigned int value) {  int i = 0, sum = 0;  int ret;  for (i = 0; i < 32; i++)  {   ret = value & 1;      sum = sum + (ret*pow(2, (31 - i)));   value = value >> 1;  }

编写函数返回值value的二进制模式从左到右翻转后的值

编写函数: unsigned int  reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值. 例如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832 观察输出的结果是将输入的数的二进制逆序排列的值. 代码如下: #include<

五中常用简洁后台导航菜单(一级导航,二级导航,手风琴式导航,左或右悬浮式导航,树状导航)

首先附上源码,可以下载! http://yunpan.cn/cd9ivPcL4ayQT (提取码:d8a5) 在建立导航菜单的时候,我们首先布局一个(" 头"+[左,右(自适应)]+”尾“)的HTML页面: 来看一下HTML页面的编写: <div id="container"> <div id="head"></div> <div id="mainContent"> <di

JavaScript基础 parseInt() 于字符串从左往右提取整数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

在一个每一行从左到右递增每一列从上到下递增的二维数组中查找一个整数是否存在——3

给定一个二维数组,数组的特点是:每一行从左到右数据大小依次递增,每一列数据从上到下依次递增,要求判断一个整数是否在这个二维数组中: 设计二维数组如下: 首先,毋庸置疑的的是,遍历一遍数组肯定能判断出来,这也是最笨的方法了,因此,要想提高程序的运行效率就得找出一种高效的方法来查找: 一开始的想法大概都能想到从数组第一行第一列的数开始沿着对角线判断,如果是对角线数据就可以直接返回,比如我们要想查找17这个数,这时候17比0.9.16都要大,因此以0.9.16为对角线的矩形数据就可以排除了,接下来判断

表达式左值右值

左值右值是表达式的属性,该属性称为 value category.按该属性分类,每一个表达式属于下列之一: lvalue left value,传统意义上的左值 xvalue expiring value, x值,指通过“右值引用”产生的对象 prvalue pure rvalue,纯右值,传统意义上的右值(?) 而 xvalue 和其他两个类型分别复合,构成: lvalue + xvalue = glvalue general lvalue,泛左值 xvalue + prvalue = rva