编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转
编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转
如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832
方法一
编程思路:
1、键入要翻转的整数;
2、调用函数unsigned int reverse_bit(unsigned int value),实现翻转;
2.1、采用循环,遍历value的每一个bit位;
2.2、把第i个bit位设为1;
2.3、value每次右移一位。
3、打印结果。
具体代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>unsigned int reverse_bit(unsigned int value) {int n = 0;int i = 0;for (i = 31; i > 0; i--) {if (value & 1) {n = n | (1 << i);}value = (value >> 1);}return n;
}int main() {int value;printf("请输入要翻转的整数:");scanf("%d", &value);if (value != 0) {printf("%u", reverse_bit(value));}system("pause");return 0;
}
方法二
编程思路:
1、首先键入要翻转的整数;
2、其次是调用unsigned int round(unsigned int a)函数,采用之前谈到的回文数的方法,将这个数字按二进制翻转即可。https://mp.csdn.net/postedit/88911882
3、打印翻转后的数字,采用%u打印,无符号整数。
具体代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>unsigned int round(unsigned int a) {unsigned int tmp, sum = 0;for (int i = 0; i < 32; i++, a /= 2) {tmp = a % 2;sum = sum * 2 + tmp;}return sum;
}int main() {int a;printf("请输入要翻转的整数:\n");scanf("%d", &a);printf("翻转后的整数为:%u\n", round(a));system("pause");return 0;
}
编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转相关推荐
- c语言中int什么意思以及什么是无符号和有符号整型
int 是整数类型,用于定义变量的类型,有符号,unsigned int 是无符号的整数类型,直白点说有符号无符号整型就是能不能存放负数. 根据程序编译器的不同,整形定义的字节数不同.51类单片机的C ...
- 功能:编写函数long fun ( char *p),将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
#include<stdio.h> #define N 2long fun(char *p) {long n=0;int flag=0; //标识符号位的标记变量while
- c语言unsigned int 范围,unsigned int 32比特数据范围为-2147
提到unsigned,大家应该都了解,有朋友问c语言中unsigned什么意思,还有人想问c语言中的unsigned是什么意思,这到底是咋回事?事实上unsigned呢,下面是小编推荐给大家的unsi ...
- stm32 无符号整形_STM32中“unsigned short”和“unsigned int”的区别是什么?
展开全部 unsigned long int在C语言中是无符号长整形变量,是整形变量的一e69da5e887aa62616964757a686964616f31333365646331种. unsig ...
- linux longlong大小,Linux基本数据类型大小——int,char,long int,long long int
转自: http://blog.163.com/zheng_he_xiang/blog/static/186505326201110272018548/ 在Linux操作系统下使用GCC进行编程,目前 ...
- 问题 D: 编写函数:比较字符串 之二 (Append Code)
题目描述 字符.整数和浮点数都可以按照数值来比较大小,字符串应该怎么比较呢?让我们来编写一个程序,可以比较两个字符串的大小. 编写函数str_cmp(): 原型:int str_cmp(char s1 ...
- 问题 C: 编写函数:比较字符串 之一 (Append Code)
题目描述 字符.整数和浮点数都可以按照数值来比较大小,字符串应该怎么比较呢?让我们来编写一个程序,可以比较两个字符串的大小. 编写函数str_cmp(): 原型:int str_cmp(char s1 ...
- C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等)
目录 1.数据类型的分类 2.基本整型 int 3.短整型 short int 4.长整型 long int 5.双长整型 long long int 6.字符型 char 7.布尔型 bool 1. ...
- MySQL中 int(11)和int(10)有没有区别
引言 依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了.直到有一次有个同学又跟我谈起这个事,才去查了以下 ...
最新文章
- 算法------最接近的三数之和
- 面试必问一:Java 中 == 和 equals 的区别你知道吗
- 看到一个沙粒世界:再一次你好世界
- 如何成为java高手
- systemctl命令
- html toast 插件,基于Bootstrap4的Toast提示插件
- JS操作JSON数据交换
- 合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
- AutoCAD打印设置
- android图片剪切第三方,Android第三方开源图片裁剪截取:cropper
- ThinkPadnbsp;E40nbsp;硬盘异响…
- 利用极小极大搜索和alpha-beta剪枝算法预测五子棋对弈落子
- oj2513: 小勇学分数
- 什么是操作系统?操作系统介绍
- win10系统登录和服务器,win10系统如何登录服务器地址
- MetCoin 元宇宙是什么?可以免费挖吗?
- cadence 16.60破解方式及文件下载地址
- 计算机wps怎么排名,wps表格不更改顺序排名次的方法
- 正整数 n 分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大
- 出现Cannot refer to the non-final local variable guoDeGang defined in an enclosing scope