首页 > 代码库 > 【基础】进制转换
【基础】进制转换
1、什么是二进制、八进制、十进制、 十六进制?
我们平常生活中常用的是10进制,就是逢10进1;
二进制:逢二进一 由0、1组成;
八进制:逢八进一 由0-7组成; 前面以o开头的数字表示八进制 在c语言中用%o
十进制:逢十进一 由0-9组成; 在c语言中用%d
十六进制:逢十六进一 由0-15组成,10-15分别对应A-F; 前面以ox开头的数字表示十六进制 在c语言中用%x
2、二进制、八进制、十六进制与十进制间的转换
(1)二进制、八进制、十六进制转十进制间
十进制的表达如:(12345)10 =1*104+2*103+3*102+4*101+5*100=12345
八进制转换为十进制:(12345)10=1*84+2*83+3*82+4*81+5*80=5349
二进制转十进制:(10101)10=1*24+0*23+1*22+0*21+1*20=21
十六进制转十进制:(1F2A5)10=1*164+15*163+2*162+10*161+5*160=127653
(2)十进制间转二进制、八进制、十六进制
十进制转二进制:用10进制的数一直除以2,直到除数小于2为止,然后把余数倒序排列
25/2 ---------12余1
12/2 ---------6余0
6/2 ---------3余0
3/2 ---------1余1
1
倒序排列得到(25)2=11001
十进制转八进制:同理用10进制的数一直除以8,直到除数小于8为止,然后把余数倒序排列
168/8 ----------16余0
16/8 ----------2余0
2
(168)8=200
十进制转十六进制:同理用10进制的数一直除以16,直到除数小于16为止,然后把余数倒序排列,大于10-15的数字用A-F表示
127653/16 ----------7978余5
7978/16 ----------498余10 (10用A表示)
498/16 ------------31余2
31/16 ------------1余15 (15用F表示)
1
(127653)16=1F2A5
补充:用程序实现任一十进制整数转换为二进制和十六进制树(这是我去超图的机试题,我当时用C#实现的,下面用C语言实现)
3、二进制与八进制的互相转换
二进制表示八进制,二进制用三位(23=8)表示八进制的数,如下:
二进制 八进制
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
(1)八进制转二进制:把每一位八进制的数换为三位的二进制。如下:
123= 001 010 011=1010011
(2)二进制转八进制:从低位到高位分成3位为一组,高位不够三位的用0补齐,然后替换三位二进制位为八进制的数。如下:
(1010011)8= 1 010 011 = 001 010 011=123
4、二进制与十六进制的互相转换
二进制表示十六进制,二进制用四位(24=8)表示十六进制的数,如下:
二进制 十六进制 二进制 十六进制
0000 0 0001 1
0010 2 0011 3
0100 4 0101 5
0110 6 0111 7
1000 8 1001 9
1010 A 1011 B
1100 C 1101 D
1110 E 1111 F
(1)十六进制转二进制:把每一位十六进制的数换为四位的二进制。如下:
(1A2B3C)2=0001 1010 0010 1011 0011 1100=110100010101100111100
(2)二进制转十六进制:从低位到高位分成4位为一组,高位不够4位的用0补齐,然后替换4位二进制位为十六进制的数。如下:
(110100010101100111100)16=1 1010 0010 1011 0011 1100=1A2B3C
5、小数的进制转换
6、数据在计算机中的存储方式
7、数据类型的原理
……
【C语言基础】知其然知其所以然
【基础】进制转换