【C语言】将二进制数逆序输出。比如6为000...0110,逆序后为0110...000

//将二进制数逆序输出。比如6为000...0110,逆序后为0110...000
#include <stdio.h>
unsigned int reverse_bit(int num)
{
	int i;
	int bit;
	unsigned new_num = 0;
	for (i = 0; i < 32; i++)
	{
		bit = num & 1;            //取出最后一位
		new_num <<= 1;            //新数左移
		new_num =new_num | bit;   //把刚取出的一位加到新数
		num >>= 1;                //原数右移,准备取第二位
	}
	return new_num;
}
int main()
{
	printf("%u\n", reverse_bit(0));
	printf("%u\n", reverse_bit(2147483648));
	printf("%u\n", reverse_bit(3));
	printf("%u\n", reverse_bit(100));
	printf("%u\n", reverse_bit(6));
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 16:36:57

【C语言】将二进制数逆序输出。比如6为000...0110,逆序后为0110...000的相关文章

算法-整数的正序和逆序输出

其实上一篇文章用递归实现了整数的正序输出,思考了整数还是可以逆序输出,不过大同小异,没有太多差别: 正序输出 -(void)printOutNumber:(NSInteger)number{ //取整,不断的递归取整,之后取余 if (number>10) { [self printOutNumber:number/10]; } NSLog(@"数值%ld",number%10); } 逆序输出 循环输出,这个比较简单容易理解: -(void)reverseNumber:(NSI

C++刷题——2286: 逆序输出单词(串)

/* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 5 月 25 日 * 版 本 号:v1.0 */ Description 输入一个字符串,空格作为单词分隔符,统计其中的单词,并将单词逆序输出 Input 输入一个字符串 Output 逆序输出单词 Sample Input I love you! Sample Output you love I! #incl

c语言:对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。

对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出. 解:程序: #include<stdio.h> int main() { int i, a[10]; for (i = 0; i <= 9; i++) { a[i] = i; } for (i = 9; i >= 0; i--) { printf("%3d", a[i]); } printf("\n"); return 0; } 结果: 9  8  7  6 

网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归、搜索、二分搜索、简单排序_1逆序输出的数列

1 逆序输出的数列(10分) 题目内容: 你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束.然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1. 输入格式: 一系列正整数,输入-1表示结束,-1不是输入的数据的一部分. 输出格式: 按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格. 输入样例: 1 2 3 4 -1 输出样例: 4 3 2 1 时间限制:2000ms内存限制:128000kb

算法竞赛入门经典_3.1_数组_逆序输出_开灯问题

又是新的一天,继续更新. 今天进入了新的章节,数组和字符串 1.逆序输出问题: 先来看代码吧 #include <stdio.h> //逆序输出 2017-8-16 #define maxn 105 int a[maxn]; int main(int argc, char* argv[]) { //int a[maxn]; int x, n = 0; while (scanf("%d", &x) == 1) a[n++] = x; for (int i = n -

javascript将整数逆序输出

我在看中国大学mooc里面的C语言教程的时候,将任意整数逆序输出. 代码如下: #include <stdio.h> int main(){ int x; //scanf("%d", &x); x=700; int digit; int ret; while( x>0 ){ digit = x%10; printf("%d",digit); ret = ret*10 + digit; //printf("x=%d,digit=%d

逆序输出一句话

对一句话里面的单词进行reverse,标点符号位置不变.符号包括:,.!? 例:输入:Hello, my dear friend! 输出:olleH, ym raed dneirf! 思路:由于需要逆序输出,因此想到利用栈数据结构来实现. 代码如下(调试环境:VS2013): 逆序输出一句话,布布扣,bubuko.com

1111 多个整数的逆序输出

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1111Description输入n和n个整数,以与输入顺序相反的顺序输出这n个整数.要求不使用数组,而使用递归函数实现.递归函数实现过程如下:void inverse(int n){    if(n >1)   {        (1) 读入一个整数,存入num;        (2)  将后面的n-1个数逆序输出: inverse(n-1);          (3)  输出num: 

字符串逆序输出

描述 给定一行字符,逆序输出此行(空格.数字不输出) 输入 第一行是一个整数N(N<10)表示测试数据的组数) 每组测试数据占一行,每行数据中间有且只有一个空格(这样你可以把此行当成两个字符串读取). 每行字符长度不超过40 并且保证输入的字符只有空格(1个),数字,小写字母三种 输出 对应每行测试数据,逆序输出(空格和数字不输出) 样例输入 3 abc 123de abc 123 abc d 样例输出 edcba cba dcba 1 #include <stdio.h> 2 #inc