将一个16进制的数的二进制位反序
来源:互联网 发布:英语图表数据作文模板 编辑:程序博客网 时间:2024/06/14 17:29
这是昨天晚上某号称中国创新力最强的应用层网络设备供应商的一题笔试编程题。题目看似简单,总的来说吧,会的人不难,不会的人无从下手。题目如下:
题目:
程序如下:编写函数reverse(),将val(32位无符号整数)的二进制位反序。比如,如果val的二进制表示为1011000011111111,反序后的val的二进制表示为 1111111100001101.
输入描述:16进制的一个无符号数。 输出描述:16进制的一个无符号数
#include <stdio.h>#include <string.h>unsigned int reverse(unsigned int num){int y = 0;for (int i = 0; i < 8 * sizeof(num); i++){y = y << 1 | num & 1;num >>= 1;}return y;}int main(int argc, char *argv[]){unsigned int num = 0;unsigned int ret = 0;if (1 != fscanf(stdin, "0x%x", &num)) {fprintf(stderr, "input error\n");return 0;}ret = reverse(num);printf("%08x\n", ret);return 0;}
如果输入 :0x1,则输出 80000000
说明:主要功能在reverse()函数实现。核心的地方就在一个for()循环
阅读全文
4 0
- 将一个16进制的数的二进制位反序
- 将一个数的二进制位进行翻转
- 将一个数的二进制位模式从左到右翻转并输出
- c::你会翻转一个数的二进制位吗?
- 求一个数的反序数
- 求一个数的反序数
- 输出一个数的反序数
- 构造一个三位数的反序数
- 16进制和八个二进制位的关系
- 整形数二进制位上1的个数
- 某数二进制位中1的个数
- 计算一个数的二进制位中1的个数的方法总结
- 【C语言】求一个数的二进制位模式从左到右翻转后对应的十进制值。
- 嵌入式C快速翻转一个任何类型的数的二进制位
- 俩种方法实现一个数的二进制位模式从左到右翻转后的值
- 关于把一个无符号数的二进制位翻转的两种实现方法
- C语言实现一个数的二进制位模式从左到右翻转后的值
- 输入一个数输出它的反序数
- POJ—3984(迷宫问题)
- vs2005和vs2010同时使用opencv的配置问题
- Android Api demo系列(28) (Graphics>Typefaces)
- box-shadow写3d搜索栏
- Excel按某一列或多列合并行
- 将一个16进制的数的二进制位反序
- mysql 多表查询
- 使用 VisualVM 进行性能分析及调优
- HDU6074 Phone Call(LCA+并查集)
- git命令--本地分支合并,上传,下拉
- Java IO -- 序列化
- keytool命令行创建Android安卓 keystore签名
- python解析URL中的域名
- POJ 2112:Optimal Milking