信息学奥赛C++编程语言 进制
来源:中山童程童美少儿编程培训机构 时间:2018/12/26 16:16:24
进制:进位记数制的简称,将数字符号按序排列成数位,并遵照某种由低位到高位的进位方式计数表示数值的方法。
下表中常见几种进制:
基数:某进制计数制允许选用的基本数字符号的个数称为基数。
权:各进制中每一个固定位置对应的单位值称为权。权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。
二、各进制之间的转换
由于计算机内部使用的数字符号只有0和1,也就是二进制。二进制有易于物理实现、运算简单、机器运行的可靠性高、以及通用性强的优点,所以必须有一种自动转换方法,在数据输入和输出计算机时,二进制和十进制能相互自动的转换。在上图中,二进制、八进制、十六进制它们之间的权值有内在的联系,即每位八进制数相当于3位二进制数,每位十六进制数相当于4位二进制数,那么八进制和十六进制也因此需要熟悉相互间的转换。
为了方便记忆,B表示二进制数,O表示八进制数,D表示十进制数,H表示十六进制数。
1、R进制转换为十进制:
只要将R进制数的各位数字与它的权相乘,其积相加,和数就是十进制。
如:将(11111111.11)2转换成十进制
2、十进制转换为R进制(分为整数部分和小数部分):
整数部分:
用十进制数连接地除以基数R,得出的余数即为相应R进制数的各位系数。此方法称为“除基取余法”。
如:将(168)10转换成八进制数
(168)=(250)8
小数部分:
用十进制数连续地乘以基数R,得到的整数即组成R进制的数,此法称为“乘基取整”。
如:将(0.3125)转换成二进制数
(0.3125)=(0.0101)
3、二进制、八进制、十六进制之间的转换:
二进制数,从小数点开始,向左右分别按三(四)位为一个单元划分,每个单元单独转换成一个八进制(十六进制)数,就完成了二进制到八、十六进制数的转换,在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。