进制转换简便方法

如题所述

采用转换高位到低位方法,即十进制先转换为十六进制,再转换为二进制。程序使用范围是小于十进制数30000的转换。
因为16的立方是4096,16的平方是256,当一个数大于或等于4096而小于30000则转换为四位十六进制数;当一个数大于等于256而小于4096则转换为三位十六进制数;当一个数大于等于16而小于256则转换为二位十六进制数;一个数小于16则转换为一位十六进制数。
每一位十六进制数都对应四位二进制数。于是可编写一函数实现一位十六进制数对二进制数的转换。
由于二进制数都是0或1,程序中都设置为字符型。
第一步设变量:全局字符数组b[4],用来实现每一位十六进制数对二进制数的转换。设字符数组a[21],装入全部转换的二进制数,并全部初始化为’\0’。
第二步编程,设置死循环结构从而实现任意次数的转换,直到从键盘上输入8,跳出循环并退出程序。
第三步编译并改错。
第四步运行程序。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-11
十进制→二进制
倒除法,取余数逆序
eg:
十进制:5
→5÷2=2···1,取1
2÷2=1···0,取0
1÷2=0···1,取1
从下往上取余数,即101
二进制:101
二进制→十进制
当前的数字乘以2的位数减一次的幂,并相加。
eg:
二进制:0101
→0×2³+1×2²+0×2¹+1×2⁰=5
十进制:5
八进制→二进制
八进制的一位等同于二进制的三位,可以先将一个数字转换为十进制,再转换为三个数字的二进制
eg:
八进制:456
→4:100
5:101
6:110
相连起来,即100101110
二进制:100 101 110
二进制→八进制
与八进二相反,二进制的三位等同于八进制的一位,可以先将三个数字转换为十进制,再转换为一个数字的八进制
(不再作例子)

十六进制→二进制
八进制的一位等同于二进制的四位,可以先将一个数字转换为十进制,再转换为四个数字的二进制
eg:
十六进制:456
→4:0100
5:0101
6:0110
二进制:0100 0101 0110
二进制→十六进制
与十六进二相反,二进制的四位等同于八进制的一位,可以先将四个数字转换为十进制,再转换为一个数字的十六进制
(不再作例子)
第2个回答  2020-09-11
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来
相似回答