二进制、八进制、十进制、十六进制之间的知识
二进制和各进制数之间的换算

一、十进制与二进制之间的转换(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.什么是二进制二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。
它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
信息的存储单位位(Bit) :度量数据的最小单位字节(Byte):最常用的基本单位,一个字节有8位b7 b6 b5 b4 b3 b2 b1 b01 0 0 1 0 1 0 1 =27+24+22+20=149K字节1k=1024 byteM(兆)字节 1M=1024KG(吉)字节 1G=1024MT(太)字节 1T=1024G曾经听人说,一个c,c++大神,就靠输入,0和1就可以装好操作系统,不知道是不是真的,嘿嘿2.十进制转换1234[10进制] 0 1 2 3 4 5 6 7 8 9 0 当数位上的值超过9就要进11000+200+30+4=1*103+2*102+3*101+4*100=12341011[2进制] 0 1 当数位上的值超过1就要进11*23+0*22+1*21+1*20=8+0+2+1=111011[8进制]0 1 2 3 4 5 6 7 当数位上的值超过7就要进11*83+1*81+1*80=512+8+1=5211011[16进制]0 1 2 3 4 5 6 7 8 9 A B C D E F 当数位上的值超过15就要进1 1*163+1*161+1*160=4096+16+1=4113当然其他进制转换成10进制是最简单的了,我想聪明的你肯定会了。
3.二进制转换首先来看十进制到二进制:除2取余数最后把余数倒过来 100101比如:十进制数37所以转换成的二进制数字为:100101再来八进制到二进制:一个八进制的位拆分成一个三位的二进制数比如:[八进制]6166拆分成 1101拆分成0016拆分成110所以转换成的二进制数字为:110001110再来十六进制到二进制:一个八进制的位拆分成一个四位的二进制数比如:[十六进制]6166拆分成01101拆分成00016拆分成0110所以转换成的二进制数字为:110000101104.八进制转换十进制到八进制:除8取余数最后把余数倒过来同时我们也可以先将十进制转换成二进制,然后将二进制又转换成八进制比如:2456 转化成八进制数字:46302456/8=307,余0;307/8=38,余3;38/8=4,余6;4/8=0,余4。
二进制八进制十进制十六进制之间的转换方法

二进制八进制十进制十六进制之间的转换方法二进制、八进制、十进制和十六进制是计算机中常用的数制表示方法。
在进行转换时,可以利用其数制规则和特点来进行相互转换。
以下将详细介绍二进制、八进制、十进制和十六进制之间的转换方法。
1.二进制转八进制:二进制数是由0和1组成的数,八进制数是由0-7组成的数。
每3位二进制数可以转换为1位的八进制数,所以将二进制数从右到左以3位一组进行分组,并用八进制数表示每组即可。
2.二进制转十进制:二进制数转换为十进制数的方法是将二进制数分别乘以2的n次方,并将结果相加,其中n从0开始递增,对应于从右到左的二进制位数。
3.二进制转十六进制:二进制数转换为十六进制数的方法是将二进制数分组为4位一组,然后将每组转换为十六进制数。
4.八进制转二进制:八进制数转换为二进制数的方法是将八进制数的每位转换为对应的3位二进制数。
例如:将八进制数326转换为二进制数,可以将其每位转换为对应的3位二进制数,得到结果:011010110。
5.八进制转十进制:八进制数转换为十进制数的方法是将八进制数分别乘以8的n次方,并将结果相加,其中n从0开始递增,对应于从右到左的八进制位数。
例如:将八进制数326转换为十进制数,可以分别计算3*8^2+2*8^1+6*8^0,得到结果:2066.八进制转十六进制:将八进制数转换为十六进制数,首先将八进制数转换为二进制数,然后将二进制数转换为十六进制数。
例如:将八进制数326转换为十六进制数,可以先将其转换为二进制数011010110,然后将二进制数转换为十六进制数,得到结果:D67.十进制转二进制:将十进制数转换为二进制数的方法是将十进制数不断除以2,然后将余数逆序排列,最后将得到的余数连接在一起。
8.十进制转八进制:将十进制数转换为八进制数的方法是将十进制数不断除以8,然后将余数逆序排列,最后将得到的余数连接在一起。
例如:将十进制数214转换为八进制数,可以依次计算214/8=26余6,26/8=3余2,3/8=0余3、最后将得到的余数逆序排列,得到结果:3269.十进制转十六进制:将十进制数转换为十六进制数的方法是将十进制数不断除以16,然后将余数逆序排列,对于10~15的余数,分别用A~F表示,最后将得到的余数连接在一起。
二进制八进制十进制十六进制转换符号口诀

二进制八进制十进制十六进制转换符号口诀标题:探索二进制、八进制、十进制及十六进制转换的符号口诀导语:在计算机科学和信息技术领域,进制转换是一项基础而重要的技能。
掌握不同进制之间的转换可以帮助我们更好地理解计算机系统的工作原理,以及更高效地处理数字数据。
本文将介绍二进制、八进制、十进制和十六进制转换的符号口诀,帮助读者轻松掌握这一技能。
一、二进制(Binary)1. 符号口诀:2进1摸、0、1解析:二进制是一种仅由0和1组成的进制系统。
符号口诀中的“2进1摸、0、1”意味着每个二进制位表示的是2的n次方,其中n表示该位置的权重。
从右至左的二进制位权重分别为1、2、4、8、16...,而对应的二进制值只能是0或1。
二、八进制(Octal)1. 符号口诀:8进1摸、0~7解析:八进制是一种由数字0至7组成的进制系统。
符号口诀中的“8进1摸、0~7”表示每个八进制位的权重为8的n次方,而每个位置上的值范围是0至7。
三、十进制(Decimal)1. 符号口诀:10进1摸、0~9解析:十进制是我们日常生活中最常用的进制系统,由0至9的数字组成。
符号口诀中的“10进1摸、0~9”表示每个十进制位的权重为10的n次方,而每个位置上的值范围是0至9。
四、十六进制(Hexadecimal)1. 符号口诀:16进1摸、0~9 A~F解析:十六进制是一种容易与二进制转换的进制系统,由0至9以及A至F的16个字符组成。
符号口诀中的“16进1摸、0~9 A~F”表示每个十六进制位的权重为16的n次方,而每个位置上的值范围是0至9和A至F。
二进制、八进制、十进制和十六进制间的转换:转换是理解不同进制的关键部分,下面将介绍在各进制之间进行转换的方法。
1. 二进制转八进制和十六进制:- 先将二进制数按照3(八进制)或4(十六进制)位一组进行分组。
- 将每组的二进制数转换为对应的八进制或十六进制值。
2. 八进制和十六进制转二进制:- 分别将八进制和十六进制数的每一位转换为对应的三位二进制数(八进制)或四位二进制数(十六进制)。
二进制八进制十进制十六进制之间的转换算法

二进制八进制十进制十六进制之间的转换算法二进制、八进制、十进制和十六进制是计算机中常用的数字系统。
它们之间的转换可以通过一些简单的算法实现。
下面我将分别介绍二进制到八进制、十进制和十六进制的转换算法,八进制到二进制、十进制和十六进制的转换算法,十进制到二进制、八进制和十六进制的转换算法,以及十六进制到二进制、八进制和十进制的转换算法。
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,将每一步的余数从最后一步开始依次排列即可。
二进制,八进制,十进制,十六进制之间的转换

二进制,八进制,十进制,十六进
制之间的转换
方法是:小数除以2得到余数,即小数除以2,余数就是砝码上的数,得到的商值继续除以2。
根据这个步骤,它将继续向下操作,直到商360被重新知道为0。
例如:把十进制数 150 转换为二进制数:如下:
•2
二进制转换为十进制的方法是:将二进制数按重量展开,相加得到十进制数。
•3
二进制转换为八进制的方法是:三个二进制数通过重量展开相加得到一个八进制数。
(请注意,3位二进制到八进制的转换是从右向左开始的,不足时加0)。
•4
八进制数转换成二进制数的方法如下:八进制数除以2得到二进制数,每个八进制数由三个二进制数组成。
不足时,在最左边补零。
•5
二进制到十六进制的方法类似于二进制到八进制的方法,八进制是三合一,十六进制是四合一。
(注意,4位二进制到十六进制的转换是从右到左,不足时加0)。
•6
十六进制转换成二进制的方法是:将十六进制数除以2得到二进制数,每个十六进制数为4个二进制数。
油量不足时,在最左边加零。
•7
十进制转八进制或者十六进制
将十进制转换为八进制或十六进制,然后除以8或16,直到商为0。
•8
将八进制或十六进制转换成十进制的方法是:将八进制和十六进制香烟组的二进制数按重量展开相加得到十进制数。
•9
八进制 >十六进制方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。
•10
十六进制 >八进制
方法:将十六进制转换成二进制,再将二进制转换成八进制,小数点位置不变。
二进制、十进制、八进制、十六进制四种进制之间相互的转换

二进制、十进制、八进制、十六进制四种进制之间相互的转换一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示八制使用后缀Q表示,十六制使用后缀H表示。
二.二进制,十六进制与十进制的计算转换1.二进制转换为十进制计算公式:二进制数据X位数字乘以2的X-1次方的积的总和例:10101011b=( )d相应的十进制值即为:27 +25+23+21+20=128+32+8+2+1=1712.十六进制转换十进制计算公式:二进制数据X位数字乘以16的X-1次方的积的总和(与二进制转换十制进同理的,将底数换为16)注意:在十六进制中,10-15依次用A,B,C,D,E,F表示例:1F3E H=()d计算:1*16的3次方+15*16的2次方+3*16的1次方+14*16的0次方=1*4096+15*256+3*16+14=7998三.十进制与二进制,十六制的计算转换1.十进制转换为二进制十进制数据数字除以2的余数的逆序组合例:404d=( )b2|404余02|202余02|101余02|50余12|25余02|12余12|6余02|3余12|1计算结果便是:1101010002.十进制转换十六进制。
与上面同理,注意的是10以上的数字用字母表示,除数是16十六进制与二进制的转换,建议通过十进制来进行中转。
带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数===================================================================== =================关于“进制之间的转换”问题的分析指导在计算机文化一书中,在其中一个章节里面详细介绍了进制之间的转换,而且在考试中进制转换也占了一定的比例,虽然分数不是很多,但是因为平时大家接触的不多,并且有点繁复,所以很多学员在做这种题目,要么选择猜答案,要么选择放弃。
笔者觉得只要掌握了方法,其实这些题目也很简单的,下面我就对进制的转换进行具体的分析和讲解,以供大家参考。
二进制八进制十进制十六进制转换符号口诀

二进制八进制十进制十六进制转换符号口诀在计算机科学和数学领域中,二进制、八进制、十进制和十六进制是常见的数字表示方式。
它们之间的转换是非常重要的基础知识,也是程序员和计算机科学家必备的技能之一。
为了帮助大家更好地理解和记忆这些进制间的转换规则,下面我将共享一些口诀和技巧。
1. 二进制转八进制二八相对应,三位一组往前推。
二进制数按照从右往左每三位一组进行分组,不足三位的高位补零,每组对应一个八进制数,依次写出即为八进制数。
2. 八进制转二进制八二不难变,每位对应三二进。
八进制数每一位转换为对应的三位二进制数即可。
3. 二进制转十进制二进制转十进制,权次为从右到左。
按照权值展开式计算,将二进制数每一位乘以对应的权值然后相加即可得到十进制数。
4. 十进制转二进制十二不尽,倒着写恰当。
使用除以2取余法,可以将十进制数转换成二进制数。
5. 二进制转十六进制二十不迷路,四位对应一。
将二进制数每四位一组,不足四位的高位补零,然后根据十六进制数的映射关系进行转换。
6. 十六进制转二进制十六转二,恰恰好。
十六进制数转换成二进制数在显示器上进行比较方便,可以将每一位直接对应成四位二进制数即可。
总结:以上口诀和技巧是帮助我们更好地记忆和理解二进制、八进制、十进制和十六进制间的转换规则的方法。
通过这些口诀和技巧,我们可以更加灵活地进行进制间的转换,并且在实际的编程和计算中能够更加熟练地运用这些知识。
个人观点:掌握进制转换是计算机领域中非常基础且重要的知识,它不仅能够帮助我们更好地理解计算机底层的运行原理,还能够在实际的编程和运算中起到关键的作用。
我认为我们应该重视并且深入理解这一知识点,通过反复练习和使用,逐渐掌握这些转换规则,从而为计算机科学和编程领域的深入学习打下坚实的基础。
希望以上内容对你有所帮助,如有任何问题或不清楚的地方,欢迎随时交流讨论。
进制转换口诀和技巧是帮助我们更好地理解和记忆二进制、八进制、十进制和十六进制之间转换规则的重要方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序:生活中其实很多地方的计数方法都多少有点不同进制的影子。
比如我们最常用的10进制,其实起源于人有10个指头。
如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。
至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。
生活中还有:七进制,比如星期。
十六进制,比如小时或“一打”,六十进制,比如分钟或角度……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进制缩短了二进制数,但保持了二进制数的表达特点。
在下面的关于进制转换的课程中,你可以发现这一点。
2.二、八、十六进制数转换到十进制数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 = 1002.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 转换成十进制数为 8392.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,那就是我们前面学的用于表达字符的“转义符”表达法。
2.4八进制数在转义符中的使用我们学过用一个转义符'\'加上一个特殊字母来表示某个字符的方法,如:'\n'表示换行(line),而'\t'表示Tab字符,'\''则表示单引号。
今天我们又学习了一种使用转义符的方法:转义符'\'后面接一个八进制数,用于表示ASCII码等于该值的字符。
比如,查一下第5章中的ASCII码表,我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用 '\77'来表示'?'。
由于是八进制,所以本应写成'\077',但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。
事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4小节的内容,大家仅仅了解就行。
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 * 1002.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++并不把它当成一个负数。
2.7十六进制数在转义符中的使用转义符也可以接一个16进制数来表示一个字符。
如在6.2.4小节中说的 '?' 字符,可以有以下表达方式:'?' //直接输入字符'\77' //用八进制,此时可以省略开头的0'\0x3F' //用十六进制同样,这一小节只用于了解。
除了空字符用八进制数 '\0' 表示以外,我们很少用后两种方法表示一个字符。
3.十进制数转换到二、八、十六进制数3.1十进制数转换为二进制数给你一个十进制,比如: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。
把上面的一段改成用表格来表示,则为:(在计算机中,÷用 / 来表示)如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除:(图:1)请大家对照图,表,及文字说明,并且自已拿笔计算一遍如何将6转换为二进制数。
说了半天,我们的转换结果对吗?二进制数110是6吗?你已经学会如何将二进制数转换成10进制数了,所以请现在就计算一下110换成10进制是否就是6。
3.2十进制数转换为八、十六进制数非常开心,10进制数转换成8进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成8。
来看一个例子,如何将十进制数120转换成八进制数。
用表格表示:120转换为8进制,结果为:170。
非常非常开心,10进制数转换成16进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成16。
同样是120,转换成16进制则为:120转换为16进制,结果为:78。
请拿笔纸,采用(图:1)的形式,演算上面两个表的过程。
4.二、十六进制数互相转换二进制和十六进制的互相转换比较重要。
不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。