进制转换十分繁难,但又十分关键,在初学环节中是必定把握的基础常识,c言语进制转换。
文章目录
一、基础常识
1.C言语中的进制
2.汇编中的进制
3.经常出现进制的基数:
4.不同进制的输入方式
二、十进制转为其它进制
三、恣意进制转为十进制
四、二进制与十六进制的相互转换
1.二进制转为十六进制
2.十六进制转为二进制
五、二进制与八进制的相互转换
1.二进制转为八进制
2.八进制转为二进制
六、总结
一、基础常识
1.C言语中的进制
C言语规则,在八进制数字前要加0(留意这里是数字零,不是大写字母O),在十六进制数字前要加0X或0x(留意这里雷同是数字零,不是大写字母O),而在十进制数字前不须要加任何物品。
int i 10 //示意十进制数字int j 010 //示意八进制数字int k 0x10 // 示意十六进制数字int l 0X10 // 示意十六进制数字
2.汇编中的进制
汇编言语中,在数字后加字母B示意二进制数字,在数字后加字母O示意八进制数字,在数字后加字母D示意十进制数字,在数字后加字母H示意十六进制数字。
例如:
1011B示意二进制数字1011
1357O示意八进制数字1357
2049D示意十进制数字2049
3FB9H示意十六进制数字3FB9
3.经常出现进制的基数:
十进制:0 1 2 3 4 5 6 7 8 9
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f(或0 1 2 3 4 5 6 7 8 9 A B C D E F)
4.不同进制的输入方式
include <stdio.h>int mainint i 31printf"i = %d\n" i // %d示意以十进制输入整型数据printf"i = %o\n" i // %o示意以八进制输入整型数据,留意这里是小写字母oprintf"i = %x\n" i // %x示意以十六进制输入整型数据,假设数字中蕴含字母时,字母为小写printf"i = %X\n" i // %X示意以十六进制输入整型数据,假设数字中蕴含字母时,字母为大写printf"i = %#x\n" i // %o示意以十六进制输入整型数据,输入结果中带有0xprintf"i = %#X\n" i // %o示意以十六进制输入整型数据,输入结果中带有0Xreturn 0
二、十进制转为其它进制
筹备常识:在C言语中,小数字除以大数字,商为0,而余数就是小数字自身。例如,3/8 = 0,3%5 = 3;1/2 = 0,1%5 = 1;7/16 = 0,7%16 = 7
示例一:将十进制数字185转为对应的二进制数字,用185始终除以2,每次保管余数,直至商为0,而后把保管的余数倒上来,失掉的就是十进制数字185对应的二进制数字,如下图左侧局部所示。
示例二:将十进制数字185转为对应的八进制数字,用185始终除以8,每次保管余数,直至商为0,而后把保管的余数倒上来,失掉的就是十进制数字185对应的八进制数字,如下图右上角局部所示。
示例三:将十进制数字3981转为对应的十六进制数字,用3981始终除以16,每次保管余数,直至商为0,而后把保管的余数倒上来,失掉的就是十进制数字3981对应的十六进制数字,如下图右下角局部所示。
总结:十进制转n进制,除n取余,直至商为0,后将余数顺叙陈列
练习
将十进制数字123转换为对应的二进制数字
将十进制数字123转换为对应的八进制数字,并经过编写程序审核能否正确
将十进制数字10000转换为对应的十六进制数字,并经过编写程序审核能否正确
三、恣意进制转为十进制
思索:十进制数字1234是怎样失掉的?
以上述疑问为依据,咱们有理由推断:
所以,其它进制转换为十进制的方式便因此得出:
四、二进制与十六进制的相互转换
思索:1个十六进制位须要多少个二进制位来示意?
由于1个十六进制位有16种不同的形态,而1个二进制位只要2种不同的形态,所以,须要4个二进制位启动陈列组合能力领有16种不同的形态。深刻地讲,1个十六进制位可以表白出16个不同的数字(0-15),而1个二进制位只能表白出2个不同的数字,所以须要4个二进制位才可以表白出16个不同的数字。例如,十六进制数字C对应的十进制数字是12,十进制数字12对应的二进制数字为1100。所以,1个十六进制位便对应4个二进制位,这在二进制与十六进制的相互转换环节中给咱们提供了便利。
1.二进制转为十六进制
方法:从右向左,四位一段,不够补零,按十进制,分段转换
例如:
2.十六进制转为二进制
方法:将每一个十六进制位转换为四个二进制位
例如:
五、二进制与八进制的相互转换
思索:1个八进制位须要多少个二进制位来示意?
1.二进制转为八进制
方法:从右向左,三位一段,不够补零,按十进制,分段转换
原理与二进制转为十六进制相反,这里不再举例说明
练习
将二进制数字11010转换为对应的八进制数字
将二进制数字110110转换为对应的八进制数字
将二进制数字0101110转换为对应的八进制数字
2.八进制转为二进制
方法:将每一个八进制位转换为三个二进制位
原理与十六进制转为二进制相反,这里不再举例说明
练习
将八进制数字27转换为对应的二进制数字
将八进制数字34转换为对应的二进制数字
将八进制数字321转换为对应的二进制数字
六、总结
学习完进制转化有助于学习计算机更底层的常识,它将为 补码 、 汇编 、 调试 等的学习打下松软的基础。