二 八 十 十六进制转换方法
- 格式:doc
- 大小:47.00 KB
- 文档页数:9
.基本知识十进制基数为10,逢10进1。
在十进制中,一共使用10个不同的数字符号,这些符号处于不同位置时,其权值各不相同。
二进制基数为2,逢2进1。
在二进制中,使用0和1两种符号。
八进制基数为8,逢8进1。
八进制使用8种不同的符号,它们与二进制的转换关系为:0:000 1:001 2:010 3:011 4:100 5:101 6:110 7:111十六进制基数为16,逢16进1。
十六进制使用16种不同的符号,它们与二进制的转换关系为:0:0000 1:0001 2:0010 3:0011 4:0100 5:0101 6:0110 7:01118:1000 9:1001 A:1010 B:1011 C:1100 D:1101 E:1110 F:1111二进制数的运算算术运算:加法0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10(向高位进1)算术运算:减法0 ? 0 = 0 0 ? 1 = 1(向高位借1)1 ? 0 = 1 1 - 1 = 0逻辑运算:或(∨)0 ∨0 = 0 0 ∨1 = 1 1 ∨0 = 1 1 ∨1 = 1逻辑运算:与(∧)0 ∧0 = 0 0 ∧1 = 0 1 ∧0 = 0 1 ∧1 = 1逻辑运算:取反0取反为1 1取反为0注意:算术运算会发生进位、借位,逻辑运算则按位独立进行,不发生位与位之间的关系,其中,0表示逻辑假,1表示逻辑真。
2.转换为十进制二进制化为十进制例:将二进制数101.01转换成十进制数(101.01)2 = 1×22 + 0×21 + 1×20 + 0×2-1 + 1×2-2 = (5.25)10八进制化为十进制例:将八进制数12.6转换成十进制数(12.6)8 = 1×81 + 2×80 + 6×8-1 = (10.75)10十六进制化为十进制例:将十六进制数2AB.6转换成十进制数:(2AB.6)16 = 2×162 + 10×161 + 11×160 + 6×16-1 = (683.375)103.转换为二进制八进制化为二进制规则:按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变。
二进制,八进制,十进制,十六进制之间的相互转换和相关概念二进制:计算机只认识0或1,也就是高电平和低电平.所以所有的数据格式最终会转化为2进制形式,计算机硬件才能识别。
二进制逢二进一,八进制逢八进一,十进制逢十进一,十六进制逢十六进一。
下边是各进制之间的转换公式.二进制转十进制0110 0100(2) 换算成十进制第0位0 * 2^0 = 0第1位0 * 2^1 = 0第2位 1 * 2^2 = 4第3位0 * 2^3 = 0第4位0 * 2^4 = 0第5位 1 * 2^5 = 32第6位 1 * 2^6 = 64第7位0 * 2^7 = 0 +---------------------------100二进制转八进制可采用8421法1010011(2)首先每三位分割即: 001,010,011不足三位采用0补位.然后采用8421法: 001=1010=2011=3所以转换成8进制是123二进制转十六进制1101011010100(2)首先每四位分割即: 0001,1010,1101,0100不足四位采用0补位.然后采用8421法: 0001:11010:A1101:D0100:4所以转换成十六进制是1AD4十六进制当数字超过9后将采用A代替10,B代替11,C代替12,D代替13,E代替14,F代替15;下边是十进制的各种转换:十进制转二进制6(10)10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
商余数6/2 3 03/2 1 11/2 0 1最后把余数从下向上排列写出110即是转换后的二进制.十进制转换八进制10进制数转换成八进制数,这是一个连续除8的过程:把要转换的数,除以8,得到商和余数,将商继续除以8,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
120(10)商余数120/8 15 015/8 1 71/8 0 1最后把余数从下向上排列写出170即是转换后的八进制.十进制转换十六进制10进制数转换成十六进制数,这是一个连续除16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。
二八十十六进制数之间的转换方法
二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进
制(Hexadecimal)是我们在计算机领域经常遇到的进制表示方法。
了解
这些进制之间的转换方法非常重要,因为在计算机编程、网络通信和数据
存储中,我们经常需要将数据在不同的进制之间进行转换。
下面将详细介绍二进制、八进制、十进制和十六进制之间的转换方法。
一、二进制和八进制之间的转换方法:
二、二进制和十进制之间的转换方法:
1.二进制转十进制:将二进制数的每一位与对应的权重相乘并求和即可。
权重的计算公式为权重=2的位数-1、例如,二进制数1110可以分为
1x2^3+1x2^2+1x2^1+0x2^0,计算得到十进制数14
2.十进制转二进制:将十进制数不断地除以2,并将余数从下往上排列,直至商为0。
例如,十进制数14除以2的过程为14/2=7余数0,
7/2=3余数1,3/2=1余数1,1/2=0余数1、将余数从下往上排列为1110,所以十进制数14转换成二进制数1110。
三、二进制和十六进制之间的转换方法:
总结:
二进制、八进制、十进制和十六进制之间的转换方法是非常重要的基
础知识。
我们可以根据上述方法将数字在不同进制之间进行转换,以满足
不同的计算机领域需求。
通过掌握这些转换方法,我们能更好地理解计算
机中的数据表示和计算原理。
同时,在编程和网络通信中,我们也需要经
常进行进制转换,以便正确地处理和解析数据。
二进制、十进制、八进制、十六进制四种进制之间相互的转换一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示八制使用后缀Q表示,十六制使用后缀H表示。
二.二进制,十六进制与十进制的计算转换1.二进制转换为十进制计算公式:二进制数据X位数字乘以2的X-1次方的积的总和例:b=( )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计算结果便是:02.十进制转换十六进制。
与上面同理,注意的是10以上的数字用字母表示,除数是16十六进制与二进制的转换,建议通过十进制来进行中转。
带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数================================================================= =====================关于“进制之间的转换”问题的分析指导在计算机文化一书中,在其中一个章节里面详细介绍了进制之间的转换,而且在考试中进制转换也占了一定的比例,虽然分数不是很多,但是因为平时大家接触的不多,并且有点繁复,所以很多学员在做这种题目,要么选择猜答案,要么选择放弃。
笔者觉得只要掌握了方法,其实这些题目也很简单的,下面我就对进制的转换进行具体的分析和讲解,以供大家参考。
二、八、十及十六进制的表示及相互转换一、二进制二进制是一种使用0和1两个数字进行计数的系统。
在计算机科学和电子工程中,二进制被广泛应用。
二进制数值可以使用位(bit)来表示,每一位只能是0或1。
二进制数值可以通过加权法来转换为十进制数值。
二进制数值示例:1101101011110000二进制数值可以通过不断除以2并取余数的方法转换为十进制数值。
例如,将1101转换为十进制数值:1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 13二、八进制八进制是一种使用0到7这八个数字进行计数的系统。
在计算机科学和电子工程中,八进制数值常用于表示一组二进制数值。
每三位二进制数值可以转换为一位八进制数值。
八进制数值示例:175273八进制数值可以通过将每一位二进制数值分组并转换为八进制数值来转换为十进制数值。
例如,将1101 1010转换为八进制数值:(110)₂ = (6)₈(101)₂ = (5)₈(010)₂ = (2)₈因此,1101 1010转换为八进制数值为6252。
三、十进制十进制是我们平常所使用的计数系统,使用0到9这十个数字进行计数。
十进制数值可以直接表示整数和小数。
十进制数值示例:123456789.25十进制数值可以通过加权法来转换为二进制或八进制数值。
例如,将4567转换为二进制数值:4 * 10^3 +5 * 10^2 +6 * 10^1 +7 * 10^0 = 1000 + 500 + 60 + 7 = 4567将4567转换为八进制数值:4567 / 8 = 570 (7)570 / 8 = 71 (2)71 / 8 = 8 (7)8 / 8 = 1 0因此,4567转换为二进制数值为1000111010111,转换为八进制数值为10727。
四、十六进制十六进制是一种使用0到9及A到F这十六个数字进行计数的系统。
在计算机科学和电子工程中,十六进制数值常用于表示二进制数值。
2,8,10,16进制之间的相互转换我们知道日常生活中存在很多进制,常见的有二进制(计算机中的进制常用0、1表示),十进制、八进制、十六进制、六十进制(如时间度分秒)、二十四进制(一天24小时)等。
接下来为了熟练掌握二、八、十、十六进制的相互转化。
我们先从各个进制转化为10进制,并了解各个进制表示数的方法,从最低位个位向高位计算开始:二进制(逢2进1)在计算机中,电路只有关闭和开启状态,为了表示这种状态就用数字0、1来表示;例如计数3次可以用0010表示用数字0、1表示,2进制换算方法:2进制数的第1位的权值为2的0次方,第2位的权值为2的1次方,第3位的权值为2的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于1,即:1)表示的大小为(X-1)* 2的N次方。
图1八进制(逢8进1)用数字0、1、2、3、4、5、6、78进制多位数字母需要换算,换算方法:8进制数的第1位的权值为8的0次方,第2位的权值为8的1次方,第3位的权值为8的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于7,)表示的大小为(X -1)* 8的N次方。
图2十六进制(逢16进1)用数字0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)16进制多位数字母需要换算,换算方法:16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。
图310进制转化为其他进制只需要将该数用除法的形式进行逆运算,就能得到各个进制之间的关系:如10(10进制)转为2进制的方法:图4所以二进制的最终表示为:1010如果是转化为其他进制,如8进制的话,就以8为底数作除法;方法同上。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(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. 二进制转十进制二进制转十进制,权次为从右到左。
按照权值展开式计算,将二进制数每一位乘以对应的权值然后相加即可得到十进制数。
4. 十进制转二进制十二不尽,倒着写恰当。
使用除以2取余法,可以将十进制数转换成二进制数。
5. 二进制转十六进制二十不迷路,四位对应一。
将二进制数每四位一组,不足四位的高位补零,然后根据十六进制数的映射关系进行转换。
6. 十六进制转二进制十六转二,恰恰好。
十六进制数转换成二进制数在显示器上进行比较方便,可以将每一位直接对应成四位二进制数即可。
总结:以上口诀和技巧是帮助我们更好地记忆和理解二进制、八进制、十进制和十六进制间的转换规则的方法。
通过这些口诀和技巧,我们可以更加灵活地进行进制间的转换,并且在实际的编程和计算中能够更加熟练地运用这些知识。
个人观点:掌握进制转换是计算机领域中非常基础且重要的知识,它不仅能够帮助我们更好地理解计算机底层的运行原理,还能够在实际的编程和运算中起到关键的作用。
我认为我们应该重视并且深入理解这一知识点,通过反复练习和使用,逐渐掌握这些转换规则,从而为计算机科学和编程领域的深入学习打下坚实的基础。
希望以上内容对你有所帮助,如有任何问题或不清楚的地方,欢迎随时交流讨论。
进制转换口诀和技巧是帮助我们更好地理解和记忆二进制、八进制、十进制和十六进制之间转换规则的重要方法。
二进制、八进制、十进制、十六进制之间的转换进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。
比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。
十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
例如:把十进制数 150 转换为二进制数:如下:二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。
二进制转八进制方法为:3位二进制数按权展开相加得到1位八进制数。
(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。
二进制转十六进制方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。
(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
十进制转八进制或者十六进制把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。
八进制 >十六进制方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。
十六进制 >八进制方法:将十六进制转换为二进制,然后再将二进制转换为八进制,小数点位置不变。
二进制八进制十进制十六进制之间的转换算法二进制、八进制、十进制和十六进制都是常见的数字系统。
在计算机科学和电子工程中,经常需要进行不同进制之间的转换。
以下是二进制、八进制、十进制和十六进制之间的转换算法。
1.二进制转换为八进制、十进制和十六进制:-二进制转十进制:将二进制数从右往左,每一位乘以2的幂次方,幂次方从0开始递增。
将各位的乘积相加得到十进制数。
例如,将二进制数1101转换为十进制数:(1x2^3)+(1x2^2)+(0x2^1)+(1x2^0)=132.八进制转换为二进制、十进制和十六进制:-八进制转十进制:将八进制数从右往左,每一位乘以8的幂次方,幂次方从0开始递增。
将各位的乘积相加得到十进制数。
例如,将八进制数137转换为十进制数:(1x8^2)+(3x8^1)+(7x8^0)=95-八进制转十六进制:先将八进制数转换为二进制数,然后将二进制数按照从右往左的顺序每四位一组,转换成对应的十六进制数。
如果二进制数位数不是四的倍数,则在左边补0。
然后将十六进制数按照从左到右的顺序排列。
例如,将八进制数362转换为十六进制数:(011)(110)(010),即1D23.十进制转换为二进制、八进制和十六进制:-十进制转八进制:将十进制数除以8,将余数从右往左排列,直到商为0。
例如,将十进制数125转换为八进制数:175-十进制转十六进制:将十进制数除以16,将余数从右往左排列,直到商为0。
对于10以上的余数,分别用A、B、C、D、E、F表示,分别对应10、11、12、13、14、15、例如,将十进制数255转换为十六进制数:FF。
4.十六进制转换为二进制、八进制和十进制:-十六进制转二进制:将十六进制数中的每一位转换为对应的四位二进制数。
例如,将十六进制数3F转换为二进制数:(0011)(1111)。
-十六进制转八进制:先将十六进制数转换为二进制数,然后将二进制数按照从右往左的顺序每三位一组,转换成对应的八进制数。
二进制、八进制、十进制、十六进制互相转换方法1、有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。
个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D2、十进制数转二进制数、八进制数、十六进制数方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
3、二进制数转换成其它数据类型3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。
010110.001100B=26.14Q八进制转二进制反之则可。
3-2二进制转十进制:见13-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H十进制转各进制要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制如:55转为二进制2|5527――1 个位13――1 第二位6――1 第三位3――0 第四位1――1 第五位最后被除数1为第七位,即得110111二、十进制转八进制如:5621转为八进制8|5621702 ―― 5 第一位(个位)87 ―― 6 第二位10 ―― 7 第三位1 ――2 第四位最后得八进制数:127658三、十进制数十六进制如:76521转为十六进制16|765214726 ――5 第一位(个位)295 ――6 第二位18 ――6 第三位1 ――2 第四位最后得1276516二进制与十六进制的关系2进制0000 0001 0010 0011 0100 0101 0110 011116进制0 1 2 3 4 5 6 72进制1000 1001 1010 1011 1100 1101 1110 111116进制8 9 a(10) b(11) c(12) d(13) e(14) f(15)可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:3为0011,A 为1010,合并起来为00111010。
二进制八进制十进制十六进制之间的转换算法二进制、八进制、十进制和十六进制都是常见的数值表示系统。
它们
可以互相转换,以下是在这四个进制之间进行转换的算法:
1.二进制与八进制的转换:
-将二进制数每3位分组(从右往左),不足3位则在左侧补0。
-将每组的二进制数转换为相应的八进制数。
2.二进制与十进制的转换:
-将二进制数每一位乘以2的相应次幂,并将结果相加。
3.二进制与十六进制的转换:
-将二进制数每4位分组(从右往左),不足4位则在左侧补0。
-将每组二进制数转换为相应的十六进制数。
4.八进制与十进制的转换:
-将八进制数每一位乘以8的相应次幂,并将结果相加。
5.八进制与十六进制的转换:
-首先将八进制数转换为二进制数,再将二进制数转换为十六进制数。
6.十进制与十六进制的转换:
-将十进制数每个位上的数字转换为相应的十六进制数。
举例说明:
1.二进制转八进制:
2.二进制转十进制:
-二进制数1101转换为十进制:1*2^3+1*2^2+0*2^1+1*2^0=13
3.二进制转十六进制:
4.八进制转十进制:
-八进制数74转换为十进制:7*8^1+4*8^0=60。
5.八进制转十六进制:
6.十进制转十六进制:
-十进制数255转换为十六进制:255=FF。
以上是二进制、八进制、十进制和十六进制之间的基本转换算法。
根据不同的进制转换需求,我们可以使用这些算法进行相应的转换计算。
数字进制转换方法
数字进制是计算机中用来表示数字的一种方式,常见的进制有二进制、八进制、十进制和十六进制。
数字进制转换有以下方法:
1. 二进制转八进制或十六进制:将二进制数按从右到左每三位或四位一组,将每组转换成对应的八进制或十六进制即可。
2. 八进制或十六进制转二进制:将八进制或十六进制数中的每一位转换成对应的三位或四位二进制数即可。
3. 十进制转二进制、八进制或十六进制:用除基取余法将十进制数不断除以对应的进制数,将余数从下往上依次排列即是转换后的二进制、八进制或十六进制数。
4. 二进制、八进制或十六进制转十进制:将每一位的值乘以对应进制的基数的幂次方相加即可。
上述方法都需要熟练掌握基本的数字运算和进制的概念,数字进制转换在计算机科学中应用广泛,尤其在编程中常常需要进行进制转换。
二进制,八进制,十进制,十六进制之间的转换算法一、十进制与二进制之间的转换(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入。
二进制、八进制、十进制与十六进制最简便的换算方法一、进制的概念在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。
对于进制,有两个基本的概念:基数和运算规则。
基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。
二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。
也可以这样简单记忆,假设是n进制的话,基数就是【0,n-1】的数字,基数的个数和进制值相同,二进制有两个基数,十进制有十个基数,依次类推。
运算规则:运算规则就是进位或错位规则。
例如对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。
其他进制也是这样。
二、二、十、八、十六进制基数对照表1.十进制(Decimal)——>二进制(Binary)原理:对二进制数进行除2的运算例子1:将十进制数6转化成二进数22完了把后边儿框起来的数字从下往上(110)10就是对应的二进制数2.二进制(Binary)——>十进制(Decimal)原理:二进制数乘以2的过程例子1:将二进制数(10010)2转化成十进制数。
(10010)2=(1x2【4】+0x2【3】+0x2【2】+1x2【1】+0x2【0】)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次方,然后相加即可得到小数位的十进制数(按权相加法)。
二八十十六进制转换方法学习各进制之间的转换,我们先了解些基本概念:数码:表示数的符号。
基:数码的个数权:每位所具有的的值1、各进制如何转换为十进制例:十六进制2AF5转换为十进制,由左至右乘十六进制权值后相加。
5*16^0+15*16^1+10*16^2+2*16^3=5+240+2560+8192=10997 八进制76转换为十进制,同理。
6*8^0+7*8^1=6+56=62二进制转换成1101转换成十进制1*2^0+0*2^1+1*2^2+1*2^3=13终上所述各进制转换为十进制的方法为,由左至右乘各进制权值后相加。
2、十进制转换成各进制例:十进制6转换为二进制,10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
要转换的数是6, 6 ÷ 2,得到商是3,余数是0。
“将商继续除以2,直到商为0……”现在商是3,还不是0,所以继续除以2。
那就: 3 ÷ 2, 得到商是1,余数是1。
“将商继续除以2,直到商为0……”现在商是1,还不是0,所以继续除以2。
那就: 1 ÷ 2, 得到商是0,余数是1“将商继续除以2,直到商为0……最后将所有余数倒序排列”我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!6转换成二进制,结果是110。
例十进制数120转换成八进制数。
被除数计算过程商余数120120/81515/81711/81120转换为8进制,结果为:170。
例10进制数转换成16进制的方法同样是120,转换成16进制则为:被除数计算过程商余数120120/16877/167120转换为16进制,结果为:78。
综上所述,十进制和各进制之间的转换是除以各进制的基,直到除到0,取倒数。
3,二进制和十六进制的互相转换二进制数:1111,它是多少呢?你可能还要这样计算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
二八十十六进制转换方法
学习各进制之间的转换,我们先了解些基本概念:
数码:表示数的符号。
基:数码的个数
权:每位所具有的的值
1、各进制如何转换为十进制
例:十六进制2AF5转换为十进制,由左至右乘十六进制权值后相加。
5*16^0+15*16^1+10*16^2+2*16^3=5+240+2560+8192=10997 八进制76转换为十进制,同理。
6*8^0+7*8^1=6+56=62
二进制转换成1101转换成十进制
1*2^0+0*2^1+1*2^2+1*2^3=13
终上所述各进制转换为十进制的方法为,由左至右乘各进制权值后相加。
2、十进制转换成各进制
例:十进制6转换为二进制,10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续
除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
要转换的数是6, 6 ÷ 2,得到商是3,余数是0。
“将商继续除以2,直到商为0……”现在商是3,还不是0,所以继续除以2。
那就: 3 ÷ 2, 得到商是1,余数是1。
“将商继续除以2,直到商为0……”
现在商是1,还不是0,所以继续除以2。
那就: 1 ÷ 2, 得到商是0,余数是1
“将商继续除以2,直到商为0……最后将所有余数倒序排列”
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!
6转换成二进制,结果是110。
例十进制数120转换成八进制数。
被除数
计算过程
商
余数
120
120/8
15
15/8
1
7
1
1/8
1
120转换为8进制,结果为:170。
例10进制数转换成16进制的方法同样是120,转换成16进制则为:
被除数
计算过程
商
余数
120
120/16
8
7
7/16
7
120转换为16进制,结果为:78。
综上所述,十进制和各进制之间的转换是除以各进制的基,直到除到0,取倒数。
3,二进制和十六进制的互相转换
二进制数:1111,它是多少呢?
你可能还要这样计算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。
即,最高位的权值为2^3 =8,然后依次是 2^2 = 4,2^1=2, 2^0 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)
仅4位的2进制数快速计算方法十进制值十六进值
1111 = 8 + 4 + 2 + 1 = 15 F
1110 = 8 + 4 + 2 + 0 = 14 E
1101 = 8 + 4 + 0 + 1 = 13 D
1100 = 8 + 4 + 0 + 0 = 12 C
1011 = 8 + 4 + 0 + 1 = 11 B
1010 = 8 + 0 + 2 + 0 = 10 A
1001 = 8 + 0 + 0 + 1 = 10 9
….
0001 = 0 + 0 + 0 + 1 = 1 1
0000 = 0 + 0 + 0 + 0 = 0 0
二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
如(上行为二制数,下面为对应的十六进制):
1111 1101 , 1010 0101 , 1001 1011
F D , A 5 , 9 B
反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?
先转换F:看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
接着转换 D:看到D,知道它是13,13如何用8421凑呢?应该是:8 + 2 + 1,即:1011。
所以,FD转换为二进制数,为:1111 1011由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再
转换成2进制。
比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。
所以我们可以先除以16,得到16进制数:
被除数
计算过程
商
余数
1234
1234/16
77
2
77
77/16
4
13 (D)
4
4/16
4
结果16进制为: 4D2然后我们可直接写出4D2的二进制形式: 0100 1011 0010。
同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。
01101101 11100101 10101111 00011011
我们按四位一组转换为16进制: 6D E5 AF 1B
4、原码、反码、补码
我们已经知道计算机中,所有数据最终都是使用二进制数表达。
我们也已经学会如何将一个10进制数如何转换为二进制数。
不过,我们仍然没有学习一个负数如何用二进制表达。
比如,假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
现在想知道,-5在计算机中如何表示?
在计算机中,负数以其正值的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
比如 00000000 00000000 00000000 00000101 是 5的原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。
(1变0; 0变1)
比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。
反码是相互的,所以也可称:11111111 11111111 11111111 11111010 和00000000 00000000 00000000 00000101 互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。
那么,补码为:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。
转换为十六进制:0xFFFFFFFB。
再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取1的原码:00000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110
3、得补码: 11111111 11111111 11111111 11111111
可见,-1在计算机里用二进制表达就是全1。
16进制为:0xFFFFFF。
一切都是纸上说的……说-1在计算机里表达为0xFFFFFF,我能不能亲眼看一看呢?当然可以。
利用C++ Builder的调试功能,我们可以看到每个变量的16进制值。