更新时间:2018-01-30 来源:黑马程序员 浏览量:
计算机本身是以二进制存储数据的,因此我们经常会涉及到进制之间的转换,接下来我们进行学习。
计算机内部之所以采用二进制,其主要原因是二进制具有以下优点:
(1)技术上容易实现。用双稳态电路表示二进制数字0和1是很容易的事情。
(2)可靠性高。二进制中只使用0和1两个数字,传输和处理时不易出错,因而可以保障计算机具有很高的可靠性。
(3)运算规则简单。与十进制数相比,二进制数的运算规则要简单得多,这不仅可以使运算器的结构得到简化,而且有利于提高运算速度。
(4)与逻辑量相吻合。二进制数0和1正好与逻辑量“真”和“假”相对应,因此用二进制数表示二值逻辑显得十分自然。
(5)二进制数与十进制数之间的转换相当容易。人们使用计算机时可以仍然使用自己所习惯的十进制数,而计算机将其自动转换成二进制数存储和处理,输出处理结果时又将二进制数自动转换成十进制数,这给工作带来极大的方便。
一、十进制和二进制间的互相转换
1. 十进制转二进制
十进制转换成二进制就是一个除以2取余数的过程。把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。例如将6转换为二进制数的过程只需将6三次除以2计算得到余数依次是:0、1、1,将所有余数倒序排列是:110了。
2. 二进制转十进制
二进制转换成十进制,只需将二进制转化成十进制要从右到左用二进制位上的每个数去乘以2的相应次方,然后把得到的所有结果相加,得到的结果就是转换后的十进制。如把一个二进制数0110 0100转换为10进制
0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26+ 0 * 27 = 100
二、二进制和八进制、十六进制之间的转换
3. 二进制转八进制
八进制比二进制数更容易记忆,因此可以把二进制转换为八进制,这时可以用到下表。
有了这张表,就可以方便的把二进制数转换成八进制数。首先,将一个二进制数自右向左每三位分成一段。然后,将每一段用表中的八进制数替换即可。
例如:100101010
每三位分成一段的样式:100 101 010
查表替换:100 ->4,101 ->5,010 ->2
替换结果:0452
2、二进制转十六进制
将二进制转换成十六进制也要用到二进制和十六进制之间的转换表,转换方法与八进制类似,只是要将二进制数每四位分成一段即可。
三、十进制和八进制、十六进制间的转换
把十进制转换成八进制或十六进制如同把十进制转换成二进制一样,除以8、16,然后取余数倒叙排列即可。但是八进制和十六进制不像二进制那样简单,运算比较麻烦。
根据1个八进制位代表3个二进制位和1个十六进制位代表4个二进制位。可以先把十进制转换成二进制进制,然后再把二进制与八进制和十六进制之间的转换规则进行转换。
如把十进制的60转换成八进制和十六进制,先把60转换为二进制为111100。根据二进制和八进制之间的转换表,把111100格式转换为八进制。
每三位分成一段的样式:111 100
查表替换:111 -->7,100 -->4
替换结果:074
根据二进制和十六进制之间的转换表,把111100格式转换为十六进制。
每四位分成一段的样式:0011 1100(最左面不够四位用0替代)
查表替换:0011-->3,1100 --> C
替换结果:0x3C
把八进制和十六进制转换为十进制,可以采用把八进制和十六进制位上的数乘以其相应次方,然后把各数相加的方法,也可以先逆向的把八进制或十六进制转换为二进制的形式,然后把二进制转换为十进制。
本文版权归黑马程序员JavaEE学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员JavaEE培训学院