信息学奥赛知识点(五)—进制转换

一、进位计数制的基本概念

数制也称为“计数制”,是用一组固定的符号和统一的规则来表示数值的方法。任何一个数制都包含两个基本要素:基数和位权

“量”才是本质,数只是“量”在某个特定的符号系统中指称,一个量可以在许多种符号系统中表示出来,符号只是指称。 (就像人才是本质,名字只是在不同的场景下的指称,可能同学喜欢叫你小名,老师却喜欢叫你大名,不管大名还是小名都指的是你)

不同的数制间可以进行进制转换。

虽然计算机能极快地进行运算,但其内部并不像人类在实际生活中使用的十进制,而是使用只包含0和1两个数值的二进制。当然,人们输入计算机的十进制被转换成二进制进行计算,计算后的结果又由二进制转换成十进制,这都由操作系统自动完成,并不需要人们手工去做,学习汇编语言,就必须了解二进制(还有八进制/十六进制)。

数码

数制中表示基本数值大小的不同数字符号。例如,十进制有10个数码:0、1、2、3、4、5、6、7、8、9。

基数

数制所使用数码的个数。例如,二进制的基数为2;十进制的基数为10。

位权

数制中某一位上的1所表示数值的大小(所处位置的价值)。例如,十进制的123,1的位权是100,2的位权是10,3的位权是1。二进制中的 1011 (一般从左向右开始),第一个1的位权是8,0的位权是4,第二个1的位权是2,第三个1的位权是1

K2K1K0小数点K-1K-2
J=222=421=220 =12-1=0.52-2=0.25
J=882=6481=880 =18-1=0.1258-2=0.015625
J=10102=100101=10100 =110-1=0.110-2=0.01
J=16162=256161=16160 =116-1=0.062516-2=0.00390625
二、数制之间的转换

计数

计数的规则。在人们使用最多的进位计数制中,表示数的符号在不同的位置上时所代表的数的值是不同的。

十进制

人们在日常生活中最熟悉的进位计数制。在十进制中,数用0,1,2,3,4,5,6,7,8,9这十个符号来描述。计数规则是逢十进一。

二进制

计算机系统中采用的进位计数制。在二进制中,数用0和1两个符号来描述。计数规则是逢二进一,借一当二。

八进制

在八进制中,数用0,1,2,3,4,5,6,7八个符号来描述。计数规则是逢八进一,借一当八。“逢八进一”

十六进制

人们在计算机指令代码和数据的书写中经常使用的数制。在十六进制中,数用0,1,…,9和A,B,…,F(或a,b,…,f)16个符号来描述。计数规则是逢十六进一。

数制符号

二进制B(binary)

八进制O(octal)

十进制D(decimal)

十六进制H(hexadecimal)

二、数制之间的转换

计算机内部使用的数字符号只有0和1两个。也就是说,计算机内部使用的是二进制数,所有数值数据和非数值数据,都是有0和1这两个数字符号加以组合而成的,我们称之为“二进制代码”。

为了方便期间,常在数字后面加一个缩写字母后缀作为不同进制的数标识,各种进制数的后缀字母:

B:二进制 O:八进制

D:十进制 H:十六进制

对于十进制,通常不加后缀,

1.二进制与十进制的转换

(1)二进制转十进制

方法1:按权展开法 例如 : (1011.01)2

K3K2K1K0小数点K-1K-2
权值84210.50.25
系数101101
对于值802100.25

结果8+0+2+1+0+0.25=11.25

(2)十进制转二进制

方法1:按权展开法

类似于拼凑出合适的数字,例如(89)10

对于89这个数字来说,考虑2的次方关系,寻找和89最近的这个数, 26=64 <89 <27=128,所以在26 的系数为1。剩余89-64=25。则继续考虑25。 24=16 <25 <25=32。所以24处系数为1。剩余25-16=9。23=8,20=1

K7K6K5K4K3K2K1K0
权值1286432168421
系数1111

则结果为(1011001)2
方法2

十进制整数转二进制数: “除2取余,逆序输出”

例如:(89)10 =(1011001)2

十进制小数转二进制数: “乘2取整,顺序输出”

例如:(0.625)10 =(0.101)2

2.八进制与二进制的转换

(1)八进制转二进制

每一个八进制的数都表示成一个三位二进制
方法:把每一位按权展开法

例如:(37.416)8=(11111.10000111)2

八进制37.416
二进制011111100001110

把高位和低位的0去掉后就是(11111.10000111)2

(2)二进制转八进制

例如:(10110.0011)2

方法:每三位二进制组成一位八进制

二进制010110.001100
八进制2614

三位为一组,不足三位的补0


3.十六进制与二进制的转换

(1)十六进制进制转二进制

例如:(5DF.9)16=(10111011111.1001)2

十六进制5DF.9
二进制010111011111.1001

把高位和低位的0去掉后就是(10111011111.1001)2

(2)二进制进制转十六进制

方法:从小数点开始往左往右每四位组成一个十六进制

例如:(1100001.111)2

二进制01100001.1110
十六进制61E

4.八进制与十进制的转换

把这个八进制的最后一位乘上80,倒数第二位81,一直乘到最高位,然后把各项乘积相加,结果即为十进制。

(36)8= 3 * 81 + 6 * 80 =24+6 =(30)10


5.十六进制与十进制的转换

把这个十六进制的最后一位乘上160,倒数第二位161,一直乘到最高位,然后把各项乘积相加,结果即为十进制。

(1E)16= 1 * 161 + 14 * 160 =16+14 =(30)10

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值