【信息学竞赛干货】Noip初赛理论知识总结(四)

网友投稿 2018-08-29 20:03

要点一

四种常用的数制

进制

基数

基数个数

进数规律

十进制

0、1、2、3、4、5、6、7、8、9

10

10i

逢十进一

二进制

0、1

2

2i

逢二进一

八进制

0、1、2、3、4、5、6、7

8

8i

逢八进一

十六进制

0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

16

16i

逢十六进一

十进制数转换为二进制数、八进制数、十六进制数的方法:


  • 整数转换方法:除基反取余法

  • 小数转换方法:乘基取整法

  • 二进制数、八进制数、十六进制数转换为十进制数的方法:按权展开求和法

要点二

二进制与十进制间的相互转换

https://cdn.china-scratch.com/timg/180831/2003095a8-0.jpg

二进制转十进制

方法:“按权展开求和”

https://cdn.china-scratch.com/timg/180831/20030a5V-1.jpg

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。

注意:不是任何一个十进制小数都能转换成有限位的二进制数。

https://cdn.china-scratch.com/timg/180831/2003095a8-0.jpg

十进制转二进制

十进制整数转二进制数:“除以2取余,逆序输出”(短除反取余法)

https://cdn.china-scratch.com/timg/180831/2003103C7-3.jpg

· 十进制小数转二进制数:“乘以2取整,顺序输出”(乘2取整法)

https://cdn.china-scratch.com/timg/180831/20031044a-4.jpg

要点三

八进制与二进制的转换

二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。

八进制数转换成二进制数:把每一个八进制数转换成3位的二进制数,就得到一个二进制数。

https://cdn.china-scratch.com/timg/180831/2003101931-5.jpg

要点四

十六进制与二进制的转换

二进制数转换成十六进制数:从小数点开始,整数部分向左、小数部分向右,每4位为一组用一位十六进制数的数字表示,不足4位的要用“0”补足4位,就得到一个十六进制数。

十六进制数转换成二进制数:把每一个八进制数转换成4位的二进制数,就得到一个二进制数。

https://cdn.china-scratch.com/timg/180831/200310ER-6.jpg

注意:以上所说的二进制数均是无正、负符号的数。这些数的范围如下表:

无符号位二进制数位数

数值范围

十六进制范围表示法

8位二进制数

0~255  (255=28-1)

00~0FFH

16位二进制数

0~65535 (65535=216-1)

0000H~0FFFFH

32位二进制数

0~232-1

00000000H~0FFFFFFFFH

要点五

总结

  • 习惯 n ( n≥2 )进制整数的表示与计算:满 n 进一的理解。加法与减法。
  • 从 10 进制数到 n 进制数的转换:整数:除 n 取余法小数:乘 n 取整法
  • 从 n 进制数到 10 进制数的转换:乘 n 的幂相加法
  • 2、8、16 进制整数之间的转换特点
https://cdn.china-scratch.com/timg/180831/200310K01-7.jpg

往年真题

https://cdn.china-scratch.com/timg/180831/20031012K-8.jpg

1. 在 8 位二进制补码中,10101011 表示的数是十进制下的( )。

A. 43         B. -85         C. -43         D. -84

——2017年第二十三届普及组C++初赛第一题

2.与二进制小数 0.1 相等的八进制数是()。

A.0.8         B.0.4         C.0.2         D.0.1    

——2016年第二十二届普及组C++初赛第八题

3.与二进制小数0.1相等的十六进制数是(  )。

A.0.8         B.0.4         C.0.2         D.0.1

——2015年第二十一届普及组C++初赛第七题

4.二进制数 11.01 在十进制下是()。

A.3.25         B.4.125         C.6.25         D.11.125

——2013年第十九届普及组C++初赛第二题

5.十六进制数9A在( )进制下是232。

A.四          B.八          C.十          D.十二

——2012年第十八届普及组C++初赛第四题

 

看了上面的要点这些题目你会做了吗?

现在公布答案:

  • 1.B  

  • 2.B

  • 3.A 

  • 4.A  

  • 5.B

你们做对了吗?

下期我们不见不散!!!

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com