(完整word版)二进制、八进制、十六进制转换方式
二进制八进制十进制十六进制之间的进制转换
二进制八进制十进制十六进制之间的进制转换详情可参考百度百科:进制转换这个词条【主要搞懂1和2两条,其他的进制之间的转化就迎刃而解,很好懂了】1. 十进制-> 二进制:将这个十进制数连续除以2的过程,第一步除以2,得到商和余数,将商再继续除以2,得到又一个商和余数,直到商为0。
最后将所有余数倒序排列,得到的数就是转换成二进制的结果。
2. 二进制-> 十进制:二进制数第1位的权值是2的0次方,第2位的权值是2的1次方,第3位的权值是2的2次方。
(例如1258这个十进制数,实际上代表的是:1x1000+2x100+5x10+8x1=1258)那么1011这个二进制数,实际上代表的是:1x8+0x4+1x2+1x1=11(十进制数11)。
(这里的8就是2的3次方,4就是2的2次方,2就是2的1次方,1就是2的0次方)3. 十进制-> 八进制:十进制数转换成八进制的方法,和转换为二进制的方法类似,唯一变化:除数由2变成8。
4. 八进制-> 十进制和转换为二进制的方法类似,唯一变化是,底数变成8,第1位表示8的0次方,第二位表示8的一次方,第三位表示8的2次方,第四位表示8的3次方。
例如1314这个八进制数,十进制数就是1x512+3x64+1x8+4x1=716(十进制)5. 十进制-> 十六进制10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
十六进制是0123456789ABCDEF这十六个字符表示。
那么单独一个A就是10,单独一个B就是11,CDEF,就分表表示12,13,14,15。
而10这个十六进制数,实际就是十进制中的16。
6. 十六进制-> 十进制和转换为二进制的方法类似,唯一变化是,底数变成16,第1位表示16的0次方,第二位表示16的一次方,第三位表示16的2次方,第四位表示16的3次方。
7. 二进制<--->八进制,之间的相互转换,更简单一些,因为8本身是2的三次方。
二进制八进制十进制十六进制之间的转换算法
二进制,八进制,十进制,十六进制之间的转换算法一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
数制转换 二进制 八进制 十进制 十六进制之间的数制转换
1.计算机中的数制:
3.1十进制转换为二进制:整数部分用除2取余法,小数部分用
乘2取整法;
例如:78.6875
3.2二进制转换为十进制:按权展开求和
例如:1001110.1011
1001110.1011=1*26+0*25+0*24+1*23+1*22+1*21+0*20+1*2-1+0
*2-2+1*2-3+1*2-4=64+8+4+2+0.5+0.125+0.0625=78.6875
3.3二进制转换为八进制
将二进制数从小数点开始,整数部分从右向左3位一组,小
数部分从左向右3位一组,不足三位用0补充;
3.4八进制转换为二进制
每一位八进制数分别转换为3位二进制数即可;
3.5二进制转换为十六进制
将二进制数从小数点开始,整数部分从右向左4位一组,小数部分从左向右4位一组,不足三位用0补充;
3.6十六进制转换为二进制
将每一位十六进制数分别转换为4位二进制数;
3.7书写规则:
二进制100B (100)2
八进制100O (100)8
十进制100D (100)10
十六进制100H (100)16
FrontPage 2003
1.窗口组成:
2.菜单栏,工具栏,格式栏,任务窗格,状态栏,标记栏,网页标签,视图模式(设计视图,拆分视图,代码视图,预览视图)
3.创建新网页:
4.保存网页
5.打开网页
6.关闭网页
7.网页编辑
1)文本的输入和格式化
2)图片的输入和编辑
3)表格的插入和编辑
4)超链接的插入和编辑
5)框架网页的插入和编辑
8.。
二进制八进制十进制十六进制之间的转换算法
二进制八进制十进制十六进制之间的转换算法二进制、八进制、十进制和十六进制是计算机中常用的数字系统。
它们之间的转换可以通过一些简单的算法实现。
下面我将分别介绍二进制到八进制、十进制和十六进制的转换算法,八进制到二进制、十进制和十六进制的转换算法,十进制到二进制、八进制和十六进制的转换算法,以及十六进制到二进制、八进制和十进制的转换算法。
1.二进制转八进制、十进制和十六进制的转换算法:-二进制转八进制:首先将二进制数按照从右向左每三位分组,不足三位的在左边补零,然后将每组转换为对应的八进制数即可。
(1)将二进制数按照从右向左每三位分组得到001011,不足三位的在左边补零;-二进制转十进制:二进制数的每一位乘以2的幂,然后将结果求和即可。
-二进制转十六进制:首先将二进制数按照从右向左每四位分组,不足四位的在左边补零,然后将每组转换为对应的十六进制数即可。
(1)将二进制数按照从右向左每四位分组得到00010110,不足四位的在左边补零;2.八进制转二进制、十进制和十六进制的转换算法:-八进制转二进制:将八进制数的每一位转换为对应的三位二进制数即可。
例如,将八进制数13转换为二进制数:-八进制转十进制:将八进制数的每一位乘以8的幂,然后将结果求和即可。
例如,将八进制数13转换为十进制数:1×8^1+3×8^0=11,所以13的十进制表示为11-八进制转十六进制:首先将八进制数转换为二进制数,然后将二进制数按照从右向左每四位分组,不足四位的在左边补零,最后将每组转换为对应的十六进制数即可。
例如,将八进制数13转换为十六进制数:(2)将二进制数按照从右向左每四位分组得到00000101,不足四位的在左边补零;(3)将每组转换为对应的十六进制数得到05,所以13的十六进制表示为053.十进制转二进制、八进制和十六进制的转换算法:-十进制转二进制:将十进制数不断除以2,直到商为0,将每一步的余数从最后一步开始依次排列即可。
二进制,八进制,十进制,十六进制的相互转换
⼆进制,⼋进制,⼗进制,⼗六进制的相互转换常⽤进制数:⼆进制,⼋进制,⼗进制,⼗六进制进制理解计算机中硬件之间的信息传递是由电流确定,假如⼀个半导体允许通过的电流是5A,如果电流通过的为5A,则通过,计为1,如果通过的电流⼩于5A,则不通过,计为0。
由此,出现两种情况的判断,与或⾮。
电流的传递由0或1来完成,由此引申出⼆进制数的概念,以便底层硬件有共同的“语⾔”,即机器语⾔,相互沟通和交流。
我们⽣活中⼀般数值的运算是⼗进制。
就是满10进1,个⼗百千万,依次递进。
由此,可以类⽐。
⼆进制(Binary):0,1。
基数为2,逢⼆进⼀。
表⽰:(111)2或者(111)B⼋进制(Octal number system):0,1,2,3,4,5,6,7。
基数为8,逢⼋进⼀。
表⽰:(111)8或者(111)O⼗进制(Decimal system):0,1,2,3,4,5,6,7,8,9。
基数为10,逢⼗进⼀。
表⽰:(111)10或者(111)D⼗六进制(Hexadecimal):0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)。
基数为16,逢⼗六进⼀。
表⽰:(111)16或者(111)Hn进制:(逢n进1)个位数:n0( 0个8)⼗位数:n1( 1个8)百位数:n2( 8个8)进制转换1.⼗进制转其他进制① 除⼆取余法(整数部分):把被转换的⼗进制整数反复除以2,直⾄商为0,所得的余数(从末位读起)就是这个数的⼆进制表⽰。
② 乘⼆取整法(⼩数部分):将⼩数部分乘以2,然后取整数部分,剩下的⼩数部分继续乘以2,然后取整数部分,剩下的⼩数部分⼜乘以2,⼀直取到⼩数部分为零为⽌。
如果永远不能为零,就同⼗进制数的四舍五⼊⼀样,按照要求保留多少位⼩数时,就根据后⾯⼀位是0还是1,取舍,如果是零,舍掉,如果是1,向⼊⼀位。
换句话说就是0舍1⼊。
读数要从前⾯的整数读到后⾯的整数。
各种进制之间的转换方法
各种进制之间的转换方法⑴二进制B转换成八进制Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每3位二进制数为一组,不足3位的,小数部分在低位补0,整数部分在高位补0,然后用1位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3。
例:◆二进制数转换成八进制数:= 110 110 . 101 100B↓↓ ↓ ↓6 6 . 5 4 =◆八进制数转换成二进制数:3 6 . 2 4Q↓ ↓ ↓ ↓011 110. 010 100 =◆低位,每4位二进制数为一组,不足4位的,小数部分在低位补0,整数部分在高位补0,然后用1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4。
例:◆二进制数转换成十六进制数:.100111B = 1011 0101 1010 . 1001 1100B↓ ↓ ↓ ↓ ↓B 5 A . 9C = 5A◆十六进制数转换成二进制数:= A B . F EH↓ ↓ ↓ ↓1010 1011. 1111 1110 = .1111111B即先把八进制数Q转换成二进制数B,再转换成十六进制数H。
例:◆八进制数转换成十六进制数:= 111 100 000 010 .100 101B= .100101B= 1111 0000 0010 . 1001 0100B= F 0 2 . 9 4H=◆十六进制数转换成八进制数:= 0001 1011 . 1110B== 011 011 . 111B= 3 3 .7Q=⑷二进制数B转换成十进制数D:利用二进制数B按权展开成多项式和的表达式,取基数为2,逐项相加,其和就是相应的十进制数。
例:◆二进制数转换成十进制数:= 1×25+1×24+0×23+0×22+1×21+0×20+1×2-1= 32+16+2+=◆求8位二进制数能表示的最大十进制数值:最大8位二进制数是BB = 1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20= 255⑸十进制数D转换成二进制数B:十进制数转换成二进制数时,整数部分和小数部分换算算法不同,需要分别进行。
二进制、八进制、十进制、十六进制的转换
⼆进制、⼋进制、⼗进制、⼗六进制的转换⼆进制(binary)数据是⽤0和1来表⽰的数,它的基数为2,进位规则是“逢2进1”。
⼋进制(Octal)数据是⽤ 0~7这8数来表⽰⼀个数,它的基数为8,⼋进制就是“逢8进1”,⼋进制的数和⼆进制数可以按位对应(⼋进制⼀位对应⼆进制三位)。
⼗进制(Decimal)数据是⽤0~9这10位来表⽰⼀个数,它的基数为10,⼗进制就是“逢10进1”。
⼗六进制(Hexadecimal)数据是⽤0~9和A~F(10~15)这16位来表⽰⼀个数,它的基数为16,⼗六进制就是“逢16进1”。
⼗六进制的数和⼆进制数可以按位对应(⼗六进制⼀位对应⼆进制四位)。
⼀、(⼆、⼋、⼗六进制)转换为⼗进制1.⼆进制转换为⼗进制⽅法:⼆进制数从低位到⾼位(即从右往左)计算,第1位的权值是2的0次⽅,第2位的权值是2的1次⽅,第3位的权值是2的2次⽅,第n 位的权值是2的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(1010)2=0*2^0+1*2^1+0*2^2+1*2^3=(10)102.⼋进制转换为⼗进制⽅法:⼋进制数从低位到⾼位(即从右往左)计算,第1位的权值是8的0次⽅,第2位的权值是8的1次⽅,第3位的权值是8的2次⽅,第n 位的权值是8的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(23)8=3*8^0+2*8^1=(19)103.⼗六进制转换为⼗进制⽅法:⼗六进制数从低位到⾼位(即从右往左)计算,第1位的权值是16的0次⽅,第2位的权值是16的1次⽅,第3位的权值是16的2次⽅,第n位的权值是16的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(3A)16=A*16^0+3*16^1=(58)10总结:任意进制转换为⼗进制算法,从低位到⾼位(即从右往左),依次将第n位的值*任意进制的(n-1)次⽅相加。
⼆、⼗进制转换为(⼆、⼋、⼗六进制)1.⼗进制转换为⼆进制⽅法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,⽽商继续除以2,余数⼜为上⼀个位权上的数,这个步骤⼀直持续下去,直到商为0为⽌,最后读数时候,从最后⼀个余数读起,⼀直到最前⾯的⼀个余数。
(完整word版)二进制、八进制、十六进制转换方式
(完整word版)⼆进制、⼋进制、⼗六进制转换⽅式第六章⼆进制、⼋进制、⼗六进制6.1 为什么需要⼋进制和⼗六进制?6.2 ⼆、⼋、⼗六进制数转换到⼗进制数6.2.1 ⼆进制数转换为⼗进制数6.2.2 ⼋进制数转换为⼗进制数6.2.3 ⼋进制数的表达⽅法6.2.4 ⼋进制数在转义符中的使⽤6.2.5 ⼗六进制数转换成⼗进制数6.2.6 ⼗六进制数的表达⽅法6.2.7 ⼗六进制数在转义符中的使⽤6.3 ⼗进制数转换到⼆、⼋、⼗六进制数6.3.1 10进制数转换为2进制数6.3.2 10进制数转换为8、16进制数6.4 ⼆、⼗六进制数互相转换6.5 原码、反码、补码6.6 通过调试查看变量的值6.7 本章⼩结这是⼀节“前不着村后不着店”的课。
不同进制之间的转换纯粹是数学上的计算。
不过,你不必担⼼会有么复杂,⽆⾮是乘或除的计算。
⽣活中其实很多地⽅的计数⽅法都多少有点不同进制的影⼦。
⽐如我们最常⽤的10进制,其实起源于⼈有10个指头。
如果我们的祖先始终没有摆脱⼿脚不分的境况,我想我们现在⼀定是在使⽤20进制。
⾄于⼆进制……没有袜⼦称为0只袜⼦,有⼀只袜⼦称为1只袜⼦,但若有两袜⼦,则我们常说的是:1双袜⼦。
⽣活中还有:七进制,⽐如星期。
⼗六进制,⽐如⼩时或“⼀打”,六⼗进制,⽐如分钟或⾓度……(该版课程的内容更新及订正均已停⽌)旧版课程打包下载----------------------------------[想看涵盖“⾯向对象”、“图形编程”、“泛型编程”……的“最新2008年版⽩话C++”课程,请点击!] (另有: 博客版)6.1 为什么需要⼋进制和⼗六进制?编程中,我们常⽤的还是10进制……必竟C/C++是⾼级语⾔。
⽐如:int a = 100,b = 99;不过,由于数据在计算机中的表⽰,最终以⼆进制的形式存在,所以有时候使⽤⼆进制,可以更直观地解决问题。
但,⼆进制数太长了。
⽐如int 类型占⽤4个字节,32位。
完整版二进制八进制十进制十六进制之间转换详解
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除2 取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0 为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168 转换为二进制得出结果将十进制的168 转换为二进制,(10101000)2 分析:第一步,将168除以2, 商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5 余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2 取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125 换算为二进制得出结果:将0.125 换算为二进制(0.001 )2分析:第一步,将0.125 乘以2,得0.25, 则整数部分为0, 小数部分为0.25;第二步, 将小数部分0.25 乘以2,得0.5, 则整数部分为0, 小数部分为0.5;第三步, 将小数部分0.5 乘以2,得1.0, 则整数部分为1,小数部分为0.0;第四步, 读数, 从第一位读起,读到最后一位, 即为0.001 。
(完整版)二进制、八进制、十进制、十六进制之间转换详解
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
二、八、十、十六进制转换
一、二进制转化成其他进制1. 二进制(Binary)——>八进制(Octal)例子1:将二进制数(10010)2转化成八进制数。
(10010)2=(010 010)2=(2 2)8=(22)8例子2:将二进制数(0.1010)2转化为八进制数。
(0.10101)2=(0. 101 010)2=(0. 5 2)8=(0.52)8诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。
2. 二进制(Binary)——>十进制(Decimal)例子1:将二进制数(10010)2转化成十进制数。
(10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10例子2:将二进制数(0.10101)2转化为十进制数。
(0.10101)2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+0.5+0.25+0.125+0.0625+0.03125)10=(0.96875)10诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。
3. 二进制(Binary)——>十六进制(Hex)例子1:将二进制数(10010)2转化成十六进制数。
(10010)2=(0001 0010)2=(1 2)16=(12) 16例子2:将二进制数(0.1010)2转化为十六进制数。
(0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。
有关二八十十六进制的互相的转化
有关二八十十六进制的互相的转化附录1:有关非十进制的说明二进制:逢二进位例如1+1=10 1+1+1=11 111+1=1000八进制:逢八进位十六进制也是这样而十六进制中单数位(例如十位上)的数字可能出现10-15 我们不能表示为110(十一零)而是表示为Bo(B零)所以说我们就引进了ABCDEF来表示10 11 12 13 14 15 十六就进位了附录2:有关进制的表示1010D 十进制的1010 亦可以表示为(1010)10XB 二进制的XXO 八进制的XXH 十六进制的X进制转换十进制转换二进制八进制十六进制(口诀转几除几)例如十进制47转换二八十六进制二进制47/2=23余一23/2=11余一11/2=5余一5/2=2余一2/2=1 无余数1/2=0余一将余数整合从高位到低位整合111101 所以47D=111101B那么自己算算在八进制和十六进制里面十进制的47等于多少呢答案:47D=57O=2FH(2 15 F)十进制小数转二进制数八进制和十六进制口诀乘二取整乘八取整乘十六取整过程以十进制转换二进制为例0.375 本身是小数自带0.(看得懂吧)自带一位小数0.375*2=0.750 整数部分为0 0.750*2=1.5 整数部分为1 0.5*2=1 整数部分为1(恰巧为整数到此停止)所以0.375D=0.011B算算转换成八进制和十六进制小数答案:0.375D=0.3B=0.6H二进制八进制十六进制数转十进制方法(我没找到合适的口诀)数*(乘号)进制(自己的进制)数位(数位以个位为基准0 向前一位加一向后一位减一)例:1101.11B=1*2的三次方(word文档的上标符号难得搞)+1*2的二次方+0*2+1*2的零次(就是乘一)+1*2的负一次+1*2的负二次=13.75D二进制转化八进制和十六进制二转八:以小数点为起点整数部分从高数位到低数位每三个数为一组最高位不足三位时,自动添加0,加在高位;小数部分从左至右每三位一组,不足三位,在低位添加0,每组数字对应一位八进制数。
二进制、八进制、十进制、十六进制之间的转换
⼆进制、⼋进制、⼗进制、⼗六进制之间的转换⼆进制是Binary,简写为B⼋进制是Octal,简写为O⼗进制为Decimal,简写为D⼗六进制为Hexadecimal,简写为H⽅法为:⼗进制数除2取余法,即⼗进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为⽌。
读数要倒叙读。
⼩数:乘2取整法,即将⼩数部分乘以2,然后取整数部分,剩下的⼩数部分继续乘以2,然后取整数部分,剩下的⼩数部分⼜乘以2,⼀直取到⼩数部分为零。
如果永远不能为零,就同⼗进制数的四舍五⼊⼀样,按照要求保留多少位⼩数时,就根据后⾯⼀位是0还是1,取舍,如果是零,舍掉,如果是1,向⼊⼀位。
换句话说就是0舍1⼊。
读数要从前⾯的整数读到后⾯的整数,即读数要顺序读。
0.125 转⼆进制第⼀步,将0.125乘以2,得0.25,则整数部分为0,⼩数部分为0.25;第⼆步, 将⼩数部分0.25乘以2,得0.5,则整数部分为0,⼩数部分为0.5;第三步, 将⼩数部分0.5乘以2,得1.0,则整数部分为1,⼩数部分为0.0;第四步,读数,从第⼀位读起,读到最后⼀位,即为0.001。
积整数部分0.125 x 2 = 0.25 00.25 x 2 = 0.5 00.5 x 2 = 1.0 1150.125 转⼆进制10010110.0010.45 转⼆进制(保留到⼩数点第四位)第⼀步,将0.45乘以2,得0.9,则整数部分为0,⼩数部分为0.9;第⼆步, 将⼩数部分0.9乘以2,得1.8,则整数部分为1,⼩数部分为0.8;第三步, 将⼩数部分0.8乘以2,得1.6,则整数部分为1,⼩数部分为0.6;第四步, 将⼩数部分0.6乘以2,得1.2,则整数部分为1,⼩数部分为0.2; 算到这⼀步就可以了,因为只需要保留四位⼩数第五步, 将⼩数部分0.2乘以2,得0.4,则整数部分为0,⼩数部分为0.4;第六步, 将⼩数部分0.4乘以2,得0.8,则整数部分为0,⼩数部分为0.8;后⾯会⼀直循环重复第七步, 将⼩数部分0.8乘以2,得1.6,则整数部分为1,⼩数部分为0.6;。
二进制、八进制、十进制、十六进制互相转换方法
二进制、八进制、十进制、十六进制互相转换方法1. 二进制转换为八进制:首先将二进制数按照每3位进行分组,不足3位的在左侧用0补齐。
然后将每组的二进制数转换为对应的八进制数,如下所示:二进制: 1011010分组: 001 011 010八进制: 1 3 2因此,二进制数1011010转换为八进制数为132。
2. 八进制转换为二进制:将八进制数的每一位数转换为对应的3位二进制数,不足3位的在左侧用0补齐,然后将这些二进制数拼接起来。
八进制: 327二进制: 011 010 111拼接: 011010111因此,八进制数327转换为二进制数为011010111。
3. 十进制转换为二进制:除以2,将商和余数记录下来,直到商为0。
然后将这些余数从最后一个开始依次排列即可。
十进制: 198除以2:商99 余数0商49 余数1商24 余数0商12 余数1商6 余数0商3 余数1商1 余数1商0 余数1结果: 11000110因此,十进制数198转换为二进制数为11000110。
4. 二进制转换为十进制:将二进制数的每一位与对应的位权相乘,然后将乘积相加即可。
二进制: 11000110位权: 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0结果: 128 64 32 16 8 4 2 0计算: 128*1 + 64*1 + 32*0 + 16*0 + 8*0 + 4*1 + 2*1 + 0*0 因此,二进制数11000110转换为十进制数为198。
5. 十进制转换为十六进制:除以16,将商和余数记录下来,直到商为0。
然后将这些余数从最后一个开始依次排列即可,注意10-15分别用字母A-F表示。
十进制: 256除以16:商16 余数0商1 余数0商0 余数1结果: 100因此,十进制数256转换为十六进制数为100。
6. 十六进制转换为十进制:将十六进制数的每一位与对应的位权相乘,然后将乘积相加即可,注意10-15分别用字母A-F表示。
无符号2、8、10、16进制相互转换
⽆符号2、8、10、16进制相互转换计算机中数的表⽰⽅法--⼆进制1.⼆进制数的运算电⼦计算机⼀般采⽤⼆进制数。
⼆进制数只有0和1两个基本数字,容易在电⽓元件中实现。
⼆进制数的运算公式:0+0=0 0×0=00+1=1 0×1=01+0=1 1×0=01+1=10 1×1=12.⼗进制和⼆进制间的转换(1)⼗进制数转换成⼆进制将⼗进制整数转换成⼆进制整数时,只要将它⼀次⼀次地被2除,得到的余数从最后⼀个余数读起)就是⼆进制表⽰的数。
2)⼆进制数转换成⼗进制数将⼀个⼆进制数的整数转换成⼗进制数,只要将按权展开。
例:11011=1*24(2的4次⽅)+1*23(2的3次⽅)+0*22(2的2次⽅)+1*21(2的1次⽅)+1*20(2的0次⽅)=273.不同进制数的转换⼆进制数和⼋进制数互换:⼆进制数转换成⼋进制数时,只要从⼩数点位置开始,向左或向右每三位⼆进制划分为⼀组(不⾜三位时可补0),然后写出每⼀组⼆进制数所对应的⼋进制数码即可。
例:将⼆进制数(10110001.111)转换成⼋进制数:010 110 001. 1112 6 1 7即⼆进制数(10110001.111)转换成⼋进制数是(261.7)。
反过来,将每位⼋进制数分别⽤三位⼆进制数表⽰,就可完成⼋进制数和⼆进制数的转换。
⼆进制数和⼗六进制数互换:⼆进制数转换成⼗六进制数时,只要从⼩数点位置开始,向左或向右每四位⼆进制划分为⼀组(不⾜四位时可补0),然后写出每⼀组⼆进制数所对应的⼗六进制数码即可。
例:将⼆进制数(11011100110.1101)转换成⼗六进制数:0110 1110 0110. 11016 E 6 D即⼆进制数(11011100110.1101)转换成⼗六进制数是(6E6.D)。
反过来,将每位⼗六进制数分别⽤三位⼆进制数表⽰,就可完成⼗六进制数和⼆进制数的转换。
⼋进制数、⼗六进制数和⼗进制数的转换:这三者转换时,可把⼆进制数作为媒介,先把代转换的数转换成⼆进制数,然后将⼆进制数转换成要求转换的数制形式。
(完整版)二进制、八进制、十进制、十六进制之间转换详解.doc
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除 2 取余法,即每次将整数部分除以 2,余数为该位权上的数,而商继续除以 2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的 168 转换为二进制得出结果将十进制的 168 转换为二进制,(10101000)2分析 : 第一步,将 168 除以 2, 商 84, 余数为 0。
第二步,将商 84 除以 2,商 42 余数为 0。
第三步,将商 42 除以 2,商 21 余数为 0。
第四步,将商 21 除以 2,商 10 余数为 1。
第五步,将商 10 除以 2,商 5 余数为 0。
第六步,将商 5 除以 2,商 2 余数为 1。
第七步,将商 2 除以 2,商 1 余数为 0。
第八步,将商 1 除以 2,商 0 余数为 1。
第九步,读数,因为最后一位是经过多次除以 2 才得到的,因此它是最高位,读数字从最后的余数向前读,即 10101000(2)小数部分方法:乘 2 取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是 0 还是 1,取舍,如果是零,舍掉,如果是 1,向入一位。
换句话说就是 0 舍 1 入。
读数要从前面的整数读到后面的整数,下面举例:例 1:将 0.125 换算为二进制得出结果:将 0.125 换算为二进制( 0.001 )2分析:第一步,将0.125 乘以 2,得 0.25, 则整数部分为0, 小数部分为0.25;第二步 ,将小数部分0.25 乘以 2, 得 0.5, 则整数部分为0, 小数部分为0.5;第三步 ,将小数部分0.5乘以2,得 1.0,则整数部分为1,小数部分为0.0;第四步 , 读数 , 从第一位读起 , 读到最后一位 , 即为 0.001 。
进制之间转换
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
总结进制数转换-二进制-八进制-十进制-十六进制--之间转换方法
*十进制数与二进制数间的转换
A. “十进制”转“二进 制”
2
19 余数 低位
2 91
2
41
2
20
2
10
0 1 高位
(19)10=(10011)2
B. “二进制”转“十进 制”
(10011)2
=1*2 4 +1*2 1
+1*2 0 =16+2+1 =19
注意:2 的0次方 等于1,
不是0
返回
*十进制数与八进制数间的转换
2
3、计算机中彩色图像的每一种颜色均可用红、 绿、蓝三原色调配出来,如果每种原色从浅到 深分为256个等级,一个原色需要用( )位二 进制数来表示。
A 24位 B 16位 C 8 位 D 256位
4、转换进制:
(11010)2 = ( )8 = ( )16 = ( )10
(0.010)2 = (
A. “十进制”转“八进 制”
8
19 余数 低位
8 23 02
高位
(19)10=(23)8
B. “八进制”转“十进 制”
(23)8
=2*8 1 +3*8 0
=16+3
=19
返回
*十进制数与十六进制数间的转换
A. “十进制”转“十六进 制”
16
27 余数 低位
16 1 11 01
写成(111)16
高位
0110 1110 0110. 1101 6 E 6. D
二进制数(11011100110.1101)2转换成十六进制 数是(6E6.D)16。
反之,将每位十六进制数分别用四位二进制数表 示,就可完成十六进制数和二进制数的转换。
二进制八进制十进制十六进制之间的转换算法
二进制,八进制,十进制,十六进制之间的转换算法一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章二进制、八进制、十六进制6.1 为什么需要八进制和十六进制?6.2 二、八、十六进制数转换到十进制数6.2.1 二进制数转换为十进制数6.2.2 八进制数转换为十进制数6.2.3 八进制数的表达方法6.2.4 八进制数在转义符中的使用6.2.5 十六进制数转换成十进制数6.2.6 十六进制数的表达方法6.2.7 十六进制数在转义符中的使用6.3 十进制数转换到二、八、十六进制数6.3.1 10进制数转换为2进制数6.3.2 10进制数转换为8、16进制数6.4 二、十六进制数互相转换6.5 原码、反码、补码6.6 通过调试查看变量的值6.7 本章小结这是一节“前不着村后不着店”的课。
不同进制之间的转换纯粹是数学上的计算。
不过,你不必担心会有么复杂,无非是乘或除的计算。
生活中其实很多地方的计数方法都多少有点不同进制的影子。
比如我们最常用的10进制,其实起源于人有10个指头。
如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。
至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。
生活中还有:七进制,比如星期。
十六进制,比如小时或“一打”,六十进制,比如分钟或角度……(该版课程的内容更新及订正均已停止)旧版课程打包下载----------------------------------[想看涵盖“面向对象”、“图形编程”、“泛型编程”……的“最新2008年版白话C++”课程,请点击!] (另有: 博客版)6.1 为什么需要八进制和十六进制?编程中,我们常用的还是10进制……必竟C/C++是高级语言。
比如:int a = 100,b = 99;不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。
但,二进制数太长了。
比如int 类型占用4个字节,32位。
比如100,用int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100面对这么长的数进行思考或操作,没有人会喜欢。
因此,C,C++ 没有提供在代码直接写二进制数的方法。
用16进制或8进制可以解决这个问题。
因为,进制越大,数的表达长度也就越短。
不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?2、8、16,分别是2的1次方,3次方,4次方。
这一点使得三种进制之间可以非常直接地互相转换。
8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。
在下面的关于进制转换的课程中,你可以发现这一点。
6.2 二、八、十六进制数转换到十进制数6.2.1 二进制数转换为十进制数二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:0110 0100,转换为10进制为:下面是竖式:0110 0100 换算成十进制第0位 0 * 20 = 0第1位 0 * 21 = 0第2位 1 * 22 = 4第3位 0 * 23 = 0第4位 0 * 24 = 0第5位 1 * 25 = 32第6位 1 * 26 = 64第7位 0 * 27 = 0 +---------------------------100用横式计算为:0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 1000乘以多少都是0,所以我们也可以直接跳过值为0的位:1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 1006.2.2 八进制数转换为十进制数八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……所以,设有一个八进制数:1507,转换为十进制为:用竖式表示:1507换算成十进制。
第0位 7 * 80 = 7第1位 0 * 81 = 0第2位 5 * 82 = 320第3位 1 * 83 = 512 +--------------------------839同样,我们也可以用横式直接计算:7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839结果是,八进制数 1507 转换成十进制数为 8396.2.3 八进制数的表达方法C,C++语言中,如何表达一个八进制数呢?如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。
但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。
这就是八进制数在C、C++中的表达方法。
由于C和C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。
现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:int a = 100;我们也可以这样写:int a = 0144; //0144是八进制的100;一个10进制数如何转成8进制,我们后面会学到。
千万记住,用八进制表达时,你不能少了最前的那个0。
否则计算机会通通当成10进制。
不过,有一个地方使用八进制数时,却不能使用加0,那就是我们前面学的用于表达字符的“转义符”表达法。
6.2.4 八进制数在转义符中的使用我们学过用一个转义符'\'加上一个特殊字母来表示某个字符的方法,如:'\n'表示换行(line),而'\t'表示Tab字符,'\''则表示单引号。
今天我们又学习了一种使用转义符的方法:转义符'\'后面接一个八进制数,用于表示ASCII码等于该值的字符。
比如,查一下第5章中的ASCII码表,我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用 '\77'来表示'?'。
由于是八进制,所以本应写成 '\077',但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。
事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4小节的内容,大家仅仅了解就行。
6.2.5 十六进制数转换成十进制数2进制,用两个阿拉伯数字:0、1;8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;10进制,用十个阿拉伯数字:0到9;16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。
字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制呢?用竖式计算:2AF5换算成10进制:第0位: 5 * 160 = 5第1位: F * 161 = 240第2位: A * 162 = 2560第3位: 2 * 163 = 8192 +-------------------------------------10997直接计算就是:5 * 160 + F * 161 + A * 162 +2 * 163 = 10997(别忘了,在上面的计算中,A表示10,而F表示15)现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是一千二百三十四?你尽可以给他这么一个算式:1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 1006.2.6 十六进制数的表达方法如果不使用特殊的书写形式,16进制数也会和10进制相混。
随便一个数:9876,就看不出它是16进制或10进制。
C,C++规定,16进制数必须以 0x开头。
比如 0x1表示一个16进制数。
而1则表示一个十进制。
另外如:0xff,0xFF,0X102A,等等。
其中的x也也不区分大小写。
(注意:0x中的0是数字0,而不是字母O)以下是一些用法示例:int a = 0x100F;int b = 0x70 + a;至此,我们学完了所有进制:10进制,8进制,16进制数的表达方式。
最后一点很重要,C/C++中,10进制数有正负之分,比如12表示正12,而-12表示负12,;但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。
6.2.7 十六进制数在转义符中的使用转义符也可以接一个16进制数来表示一个字符。
如在6.2.4小节中说的 '?' 字符,可以有以下表达方式:'?' //直接输入字符'\77' //用八进制,此时可以省略开头的0'\0x3F' //用十六进制同样,这一小节只用于了解。
除了空字符用八进制数 '\0' 表示以外,我们很少用后两种方法表示一个字符。
6.3 十进制数转换到二、八、十六进制数6.3.1 10进制数转换为2进制数给你一个十进制,比如:6,如果将它转换成二进制数呢?10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
听起来有些糊涂?我们结合例子来说明。
比如要转换6为二进制数。
“把要转换的数,除以2,得到商和余数”。
那么:要转换的数是6, 6 ÷ 2,得到商是3,余数是0。
(不要告诉我你不会计算6÷3!)“将商继续除以2,直到商为0……”现在商是3,还不是0,所以继续除以2。
那就: 3 ÷ 2, 得到商是1,余数是1。
“将商继续除以2,直到商为0……”现在商是1,还不是0,所以继续除以2。
那就: 1 ÷ 2, 得到商是0,余数是1(拿笔纸算一下,1÷2是不是商0余1!)“将商继续除以2,直到商为0……最后将所有余数倒序排列”好极!现在商已经是0。
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!6转换成二进制,结果是110。