C语言实现16进制按照2进制反序,输出的结果用16进制显示
2017-09-21 23:11
281 查看
32位无符号的十六进制按照二进制码反序,输出的结果用16进制显示
例:
输入:0x1
输出:80000000
算法思路:
1.输入用scanf格式化输入的%x来输入16进制数
2.将16进制数的每一位拆分成8421BCD码,比如16进制的12拆分成0001 0010
3.对每四位进行倒序,分别乘1,2,4,8变成16进制 此时步骤2的数变成 8 4
4.倒序输出,不足的位数补0.比如上一步骤输出结果是:48000000
代码实现(cygwin64位):
运行结果:
例:
输入:0x1
输出:80000000
算法思路:
1.输入用scanf格式化输入的%x来输入16进制数
2.将16进制数的每一位拆分成8421BCD码,比如16进制的12拆分成0001 0010
3.对每四位进行倒序,分别乘1,2,4,8变成16进制 此时步骤2的数变成 8 4
4.倒序输出,不足的位数补0.比如上一步骤输出结果是:48000000
代码实现(cygwin64位):
int main() { int n,y,t; int sum[8]={0};//因为32位最多显示8位16进制 //这里都初始化为0,方便之后的输出操作 int num=0; scanf("%x",&n);//按照16进制格式化输入 while(n!=0){ y=n%16;//把倒序拆分16进制 for(int i=0;i<4;i++){ sum[num]+=(y%2)*pow(2,4-i-1); //将拆分出来的16进制转换成8421BCD码 //再乘以相应的权值相加 y=y/2; } n=n/16; num++; } for(int i=0;i<8;i++) cout<<sum[i]; cout<<endl; }
运行结果:
相关文章推荐
- 用C语言,实现接收管道输出的结果,并显示。
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 续上一篇文章,用栈来实现:按照用户输入的rule,经过并、交、差运算后,输出字符串结果。
- 第九周实验报告任务 1 定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- c语言冒泡实现将一个字符串按照字典顺序输出
- 《第九周任务一》定义Complex类中的《《和》》运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然
- 第九周实验报告 任务2 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- 第九周【项目1】在第8周项1的基础上(1)再定义一目运算符 -,-c相当于0-c(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- java编写的hadoop wordcount,单MR任务实现按照词频排序输出结果
- c语言实现,输入一个数,转为16进制输出
- 算法初步--输入学生成绩,输出次数最多的成绩,如果有多个并列,按照从小到大输出(C语言实现)
- C语言中输出函数任意参数的实现
- C语言输出sin结果
- 用C语言实现控制台模拟显示时
- 显示dos命令ping和tracert等输出结果中的ip对应的地域名称
- Struts 中如何实现查询结果分页显示
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- C语言实现gsoap输出数据类型到XML的方法
- 利用C语言来实现交换两个变量的值,由终端输入两个整数给变量x、y,然后交换x和y的值后,输出x和y。 有不同的方法