实现一个函数,将一个数的二进制序列逆序,然后输出逆序所得二进制序列所对应的数字

#include<stdio.h>
#include<stdlib.h>
unsigned int reverse_bit(unsigned int num)
{
 int ret = 0;
 int i = 0;
 while (num)
 {
  ret += (num & 1) << 31 - i;
  i++;
  num >>= 1;
 }
 return ret;
}
 int main()
 {
  int num = 0;
  scanf_s("%d", &num);
  unsigned int ret = reverse_bit(num);
  printf("%u\n", ret);
  system("pause");
  return 0;
 }
 
 结果:

-1
4294967295
请按任意键继续. . .

时间: 2024-07-29 08:44:20

实现一个函数,将一个数的二进制序列逆序,然后输出逆序所得二进制序列所对应的数字的相关文章

C语言整数按照二进制逆序,输出逆序后的整数值

问题来源,今天早上和一舍友吃早餐的时候谈到的一个问题,将一个整数按照二进制逆序,然后输出逆序后的数值. 我们知道数值在内存中都是以二进制的形式存放的,假如我们是32位机,每8位为一个字节,int型在32位机上是占4个字节,即32位. 如   2  = 0000 0000 0000 0000 0000 0000 00000 0010(32位) 逆 ^2  = 0100 0000 0000 0000 0000 0000 00000 0000  (这里用^表示逆转) 那么这个操作要如何执行呢?首先补充

设计一个函数将一个数字字符串转换为数字,如将”1024”转换成1024输出

#include <stdio.h>int convert(char *str){    int k=0;    while(*str!='\0')    {        k=k*10+(*str++)-'0';    }    return k;        } int main(int argc, const char * argv[]) {    char *str="45";        int a=atoi(str);    printf("%d\

函数指针作为函数參数,实现冒泡排序的升序排序和降序排序

#include<stdio.h> #define N 10//定义数组元素个数 int Ascending(int a,int b);//升序排列的函数声明 int Descending(int a,int b);//降序排列的函数声明 void swap(int*,int*);//交换数据的函数声明 void BubbleSort(int a[],int n,int (*compare)(int,int));//声明排序函数,通过函数指针作为函数调用 void Display(int a[

输入一个十进制的数到dx_ax,然后十六进制转十进制输出

1 ;HtoD 2 3 data segment 4 n dw ? 5 data ends 6 7 stack segment 8 db 50 dup(?) 9 stack ends 10 11 code segment 12 assume cs:code,ss:stack,ds:data 13 start:mov ax,stack 14 mov ss,ax 15 mov sp,50 16 mov ax,data 17 mov ds,ax 18 19 mov si,10 20 mov di,10

六道题 : 1.设计一个函数,用来计算b的n次方 2.(n! = 1*2*3*4*...n) 3.(1! + 2! + 3! + 4! + ... + n!) 4.成绩 5. 数组中的元素逆序存放 6.九九乘法口诀

/* 设计一个函数,用来计算b的n次方 递归的2个条件: 1.函数自己调用自己 2.必须有个明确的返回值 */ #include <stdio.h> int pow2(int b, int n); int main() { int c = pow2(3, 2); printf("%d\n", c); return 0; } /* pow2(b, 0) == 1 pow2(b, 1) == b == pow2(b, 0) * b pow2(b, 2) == b*b == po

算法进化历程之“根据二叉树的先序和中序序列输出后序序列”

巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) 前不久在看到一个作业"根据二叉树的先序和中序序列输出后序序列",当时我参考<数据结构与算法(C语言)习题集>上的做法,先根据先中序序列确定一颗二叉树,然后后序遍历二叉树输出后序序列. 函数采用了递归算法,利用函数传入的先序和中序序列的左右边界,确定要处理的序列段,生成相应的二叉树. 基本思路是,把该段先序序列的第一个元素作为当前二叉树的根结点,然后在中序序列找到根结点.根结点

【c语言】将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数

// 将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数 #include <stdio.h> // 从原数拿出最低位,放到mid中,mid左移,原数右移 int reverse(int a) { int mid = 0; int bit; int n = 31; for (; n > 0; --n) { bit = a & 1; mid |= bit; mid <<= 1; a >>= 1; } return mid; } int main

替换空格:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

剑指offer替换空格: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路:当我们从前往后进行替换时,每替换一个就要移动后面的所有字符,时间复杂度是0(n2) 我们可以从后向前替换,先统计出所有的空格数space_count,就能得到替换后的长度是length+2*space_count 定义两个指针(可以用下标表示),i指向替换前的最后一个字符下标,j指向替换后的最后一个字符下标

python:将一个数逆序列放入列表中,例如1234 => [4,3,2,1]

今天有小伙伴问题了一个题:将一个数逆序列放入列表中,例如1234 => [4,3,2,1].要求用递归实现.粗看这个题的话,很容易实现的:int 转成str ,然后倒序,再把列表里面的 str 转成 int.再来看递归:一般递归里面都是要有个结束条件,这个题的结束条件也很好确定,它是这个列表,列表有长度,每次pop 一个 元素,直到列表的长度 等于 0 的时候,那就可以结束了.先来看个普通的递归方法: def reverse_order_list1(lst:list, tmp=[]): if l

【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)

/* 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数.负整数) 例如:"12" 返回12 "-123" 返回-123 函数原型:int my_atof(char *str) */ #include <stdio.h> int my_atof(char *str) { int flag=0; int m=0; if(*str=='-') { flag=1; str++; } while(*str!='\0') { if(*str<