输入一个无符整形数,将它的二进制位倒序然后输出倒序后所对应的数
2014-12-28 19:20
316 查看
/* 编写函数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 n=31; int count = 0; int ret ; int rat = value; while(rat != 0) { ret=rat%2; count =count+ret*pow(2,n); rat = rat/2; n--; } printf("%u\n",count); return 0; } int main() { reverse_bit(25); return 0; }
思路 如25 11001 n=31
25%2=1 1乘2的31次幂 25/2=12 n--
12%2=0 0乘2的30次幂 12/2=6 n--
6%2=0 0乘2的29次幂 6/2=3 n--
3%2=1 1乘2的28次幂 3/2=1 n--
1%2=1 1乘2的27次幂 1/2=0 结束
将这些数依次相加即可完成“倒序”
相关文章推荐
- 第十三周 练习输入一个数然后倒序输出
- 输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符.cpp
- 控制台输入一个数组,然后倒序输出
- 输入一个月份,输出对应月份的单词
- 输入一个带符号的十进制数字串,以四位十六进制的形式输出该串对应的值
- 输入a,b,c三个整数,按由大到小顺序输出。(用3个指针变量指向3个整形变量,然后用swap函数来实现互换3个整型变量的值)
- 从键盘上输入数字星期,然后输出它的英文: 其对应关系是 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday
- 将十进制整形数转换成二进制,然后通过字符型输出 自己实现的一个简单的例子
- 输入一个字符常量,输出此字符常量对应的整数值。
- C语言:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。
- 定义一个整形数组,把0~9共十个整数赋给数组元素a【0】~a【9】,然后按a【9】,a【8】,a【7】,...,a【0】的顺序输出
- 感谢贺老师出题 输入一个数,倒序输出
- Loner_li 面向对象 实例练习--要求:用户输入上述四个字段的值,实例化一个Computer类,然后调用类中方法输出电脑详细信息
- 建立一个线性表,依次从键盘输入的正整数,然后依次输出(一个简单参考事例)
- Problem Description 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。 Input 输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。 Output 对于每组
- 60}的C程序 高手帮忙写下`` 46 35 27 21 16 10 9 5 然后输出数组a。已知 int a[11]={1 使数组a仍然有序 将x插入到有序整型数组a中 由键盘输入一个整数x
- 输入一个无符号十进制数字串,以四位十六进制的形式输出该串对应的值。
- c语言: 键盘输入一个n个字符的串,然后按字母表顺序输出这n个字符
- 第三章——输入一个不多于5位的数,然后输出它是几位数,输出它的每一位数,逆序输出该数。
- 编写程序显示由数字组成的平行四边形图案。从键盘输入一个整数(£40),则输出对应的图案。例如输入4,则输出为: