奥赛电脑系统_奥赛报名子系统

二、进制与编码

四种常用的数制及它们之间的相互转换:

进制 基数 基数个数 权 进数规律

十进制 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 逢十六进一

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

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

1.二进制与十进制间的相互转换:

(1)二进制转十进制

方法:“按权展开求和”

例: (1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2 )10

=(8+0+2+1+0+0.25)10

=(11.25)10

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十

分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。

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

(2)十进制转二进制

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

例: (89)10 =(1011001)2

2 89

2 44 ……1

2 22 ……0

2 11 ……0

2 5 ……1

2 2 ……1

2 1 ……0

0 ……1

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

例: (0.625)10= (0.101)2

0.625

X 2

1.25 1

X 2

0.5 0

X 2

1.0 1

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

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

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

例:将八进制的37.416转换成二进制数:

3 7 . 4 1 6

011 111 .100 001 110

即:(37.416)8 =(11111.10000111)2

例:将二进制的10110.0011 转换成八进制:

0 1 0 1 1 0 . 0 0 1 1 0 0

2 6 . 1 4

即:(10110.011)2 = (26.14)8

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

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

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

例:将十六进制数5DF.9 转换成二进制:

5 D F . 9

0101 1101 1111 .1001

即:(5DF.9)16 =(10111011111.1001)2

例:将二进制数1100001.111 转换成十六进制:

0110 0001 . 1110

6 1 . E

即:(1100001.111)2 =(61.E)16

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

无符号位二进制数位数 数值范围 十六进制范围表示法

8位二进制数 0~255 (255=28-1) 00~0FFH

16位二进制数 0~65535 (65535=216-1) 0000H~0FFFFH

32位二进制数 0~232-1 00000000H~0FFFFFFFFH

带符号数的机器码表示方法

1.带符号二进制数的表示方法:

带符号二进制数用最高位的一位数来表示符号:0表示正,1表示负。

含符号位二进制数位数 数值范围 十六进制范围表示法

8位二进制数 -128 ~ +127 80H~7FH

16位二进制数 -32768 ~ +32767 8000H~7FFFH

32位二进制数 -2147483648 ~ +2147483647 80000000H~7FFFFFFFH

2、符号位的表示:最常用的表示方法有原码、反码和补码。

(1)原码表示法:一个机器数x由符号位和有效数值两部分组成,设符号位为x0,x真值的绝对值|x|=x1x2x3...xn,则x的机器数原码可表示为:

[x]原= ,当x>=0时,x0=0,当x<0时,x0=1。

例如:已知:x1=-1011B,x2= +1001B,则x1,x2有原码分别是

[x1] 原=11011B,[x2]原=01001B

规律:正数的原码是它本身,负数的原码是取绝对值后,在最高位(左端)补“1”。

(2)反码表示法:一个负数的原码符号位不变,其余各位按位取反就是机器数的反码表示法。正数的反码与原码相同。

按位取反的意思是该位上是1的,就变成0,该位上是0的就变成1。即1=0,0=1

例: , ,求 和 。

解: = , =

(3)补码表示法:

首先分析两个十进制数的运算:78-38=41,79+62=141

如果使用两位数的运算器,做79+62时,多余的100因为超出了运算器两位数的范围而自动丢弃,这样在做78-38的减法时,用79+62的加法同样可以得到正确结果。

模是批一个计量系统的测量范围,其大小以计量进位制的基数为底数,位数为指数的幂。如两位十进制数的测量范围是1——9,溢出量是100,模就是102=100,上述运算称为模运算,可以写作:

79+(-38)=79+62 (mod 100)

进一步写为 -38=62,此时就说 –38的补法(对模100而言)是62。计算机是一种有限字长的数字系统,因此它的运算都是有模运算,超出模的运算结果都将溢出。n位二进制的模是2n,

一个数的补码记作[x]补,设模是M,x是真值,则补码的定义如下:

例:设字长n=8位,x=-1011011B,求[x]补。

解:因为 n=8,所以模 M=28=100000000B,x<0,所以

[x]补=M+x=100000000B-1011011B=10100101B

注意:这个x的补码的最高位是“1”,表明它是一个负数。对于二进制数还有一种更加简单的方法由原码求出补码:

(1)正数的补码表示与原码相同;

(2)负数的补码是将原码符号位保持“1”之后,其余各位按位取反,末位再加1便得到补码,即取其原码的反码再加“1”:[x]补=[x]反+1。

下表列出 的8位二进制原码,反码和补码并将补码用十六进制表示。

真值 原码(B) 反码(B) 补码(B) 补码(H)

+127 0 111 1111 0 111 1111 0 111 1111 7F

+39 0 010 0111 0 010 0111 0 010 0111 27

+0 0 000 0000 0 000 0000 0 000 0000 00

-0 1 000 0000 1 111 1111 0 000 0000 00

-39 1 010 0111 1 101 1000 1 101 1001 D9

-127 1 111 1111 1 000 0000 1 000 0001 81

-128 无法表示 无法表示 1 000 0000 80

从上可看出,真值+0和-0的补码表示是一致的,但在原码和反码表示中具有不同形式。8位补码机器数可以表示-128,但不存在+128的补码与之对应,由此可知,8位二进制补码能表示数的范围是-128——+127。还要注意,不存在-128的8位原码和反码形式。

定点数和浮点数

(一)定点数(Fixed-Point Number)

计算机处理的数据不仅有符号,而且大量的数据带有小数,小数点不占有二进制一位而是隐含在机器数里某个固定位置上。通常采取两种简单的约定:一种是约定所有机器数的小数的小数点位置隐含在机器数的最低位之后,叫定点纯整机器数,简称定点整数。另一种约定所有机器数的小数点隐含在符号位之后、有效部分最高位之前,叫定点纯小数机器数,简称定点小数。无论是定点整数,还是定点小数,都可以有原码、反码和补码三种形式。

(二)浮点数(Floating-Point Number)

计算机多数情况下采作浮点数表示数值,它与科学计数法相似,把一个二进制数通过移动小数点位置表示成阶码和尾数两部分:

其中:E——N的阶码(Expoent),是有符号的整数

S——N的尾数(Mantissa),是数值的有效数字部分,一般规定取二进制定点纯小数形式。

例:1011101B=2+7*0.1011101,101.1101B=2+3*0.1011101,0.01011101B=2-1*0.1011101

浮点数的格式如下:

E0

E1E2……………En

E0

E1E2……………En

阶符 阶 尾符 尾数

浮点数由阶码和尾数两部分组成,底数2不出现,是隐含的。阶码的正负符号E0,在最前位,阶反映了数N小数点的位置,常用补码表示。二进制数N小数点每左移一位,阶增加1。尾数是这点小数,常取补码或原码,码制不一定与阶码相同,数N的小数点右移一位,在浮点数中表现为尾数左移一位。尾数的长度决定了数N的精度。尾数符号叫尾符,是数N的符号,也占一位。

例:写出二进制数-101.1101B的浮点数形式,设阶码取4位补码,尾数是8位原码。

-101.1101=-0.1011101*2+3

浮点形式为:

阶码0011 尾数11011101

补充解释:阶码0011中的最高位“0”表示指数的符号是正号,后面的“011”表示指数是“3”;尾数11011101的最高位“1”表明整个小数是负数,余下的1011101是真正的尾数。

例:计算机浮点数格式如下,写出x=0.0001101B的规格化形式,阶码是补码,尾数是原码。

x=0.0001101=0.1101*10-3

又[-3]补=[-001B]补=[1011]补=1101B

所以 浮点数形式是

1 101 0 1101000

ASCII码 ( American Standard Code for Information Interchange )

美国标准信息交换代码

将每个字符用7位的二进制数来表示,共有128种状态

大小字母、0…9、其它符号、控制符

‘ 0 ’ ―― 48

‘ A ’ ―― 65

‘ a ’ ―― 97

汉字信息编码

1. 汉字输入码

汉字输入方法大体可分为:区位码(数字码)、音码、形码、音形码。

区位码:优点是无重码或重码率低,缺点是难于记忆;

音码:优点是大多数人都易于掌握,但同音字多,重码率高,影响输入的速度;

形码:根据汉字的字型进行编码,编码的规则较多,难于记忆,必须经过训练才能较好地掌握;重码率低;

音形码:将音码和形码结合起来,输入汉字,减少重码率,提高汉字输入速度。

2.汉字交换码

汉字交换码是指不同的具有汉字处理功能的计算机系统之间在交换汉字信息时所使用的代码标准。自国家标准GB2312-80公布以来,我国一直延用该标准所规定的国标码作为统一的汉字信息交换码。

GB2312-80标准包括了6763个汉字,按其使用频度分为一级汉字3755个和二级汉字3008个。一级汉字按拼音排序,二级汉字按部首排序。此外,该标准还包括标点符号、数种西文字母、图形、数码等符号682个。

由于GB2312-80是80年代制定的标准,在实际应用时常常感到不够,所以,建议处理文字信息的产品采用新颁布的GB18030信息交换用汉字编码字符集,这个标准繁、简字均处同一平台,可解决两岸三地间GB码与BIG5码间的字码转换不便的问题。

3.字形存储码

字形存储码是指供计算机输出汉字(显示或打印)用的二进制信息,也称字模。通常,采用的是数字化点阵字模。如下图:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

一般的点阵规模有16×16,24×24,32×32,64×64等,每一个点在存储器中用一个二进制位(bit)存储。例如,在16×16的点阵中,需16×16bit=32 byte 的存储空间。在相同点阵中,不管其笔划繁简,每个汉字所占的字节数相等。

为了节省存储空间,普遍采用了字形数据压缩技术。所谓的矢量汉字是指用矢量方法将汉字点阵字模进行压缩后得到的汉字字形的数字化信息。

例题

十进制数11/128可用二进制数码序列表示为( D ) 。

A)1011/1000000 B)1011/100000000 C) 0.001011 D) 0.0001011

算式(2047)10-(3FF)16+(2000)8的结果是( A ) 。

A)(2048)10 B)(2049)10 C) (3746)8 D) (1AF7)16

已知x=(0.1011010)2,则[x/2] =( C ) 2 。

A) 0.1011101. B) 11110110 C) 0.0101101 D) 0.100110

已知A=35H,则A∧05H∨A∧3OH的结果是:( C ) 。

A)3OH B)05H C) 35H D) 53H

[x]补码=10011000,其原码为(B )

A)011001111 B)11101000 C)11100110 D)01100101

下列无符号数中,最小的数是( C )

A.(11011001)2 B.(75)10 C.(37)8 D.(2A)16

计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。处理器一次能处理的数据量叫字长。 已知64位的奔腾处理器一次能处理64个信息位,相当于( A )字节。

A.8个 B.1个 C.16个 D. 2个

在24*24点阵的“字库”中,汉字“一”与“编”的字模占用字节数分别是(C)

A.32,32 B.32,72 C.72,72 D.72,32

计算机中的数有浮点数与定点数两种,其中用浮点数表示的数,通常由(C )这两部分组成。

A.指数与基数 B. 尾数与小数 C. 阶码与尾数 D.整数与小数

十进制算术表达式:3*512+7*64+4*8+5的运算结果,用二进制表示为(B).

A. 10111100101 B.11111100101

C1111l0100101 D.11111101101

组成’教授’(jiao shou )’副教授’(fu jiao shou )与’讲师’( jiang shi)这三个词的汉字,在GB2312-80字符集中都是一级汉字.对这三个词排序的结果是(D).

A教授,副教授,讲师 B.副教授,教授,讲师

C讲师,副教授,教授 D.副教授,讲师,教授

GB2312-80规定了一级汉字3755个,二级汉字3008个,其中二级汉字字库中的汉字是以( B )为序排列的。

A.以笔划多少 B.以部首 C.以ASCⅡ码 D.以机内码

十进制数2004等值于八进制数( B )。

A. 3077 B. 3724 C. 2766 D. 4002 E. 3755

(2004)10 + (32)16的结果是( D )。

A. (2036)10 B. (2054)16 C. (4006)10 D. (100000000110)2 E. (2036)16

十进制数100.625等值于二进制数( B )。

A. 1001100.101 B. 1100100.101 C. 1100100.011 D. 1001100.11 E. 1001100.01

以下二进制数的值与十进制数23.456 的值最接近的是(D )。

A. 10111.0101 B. 11011.1111 C. 11011.0111 D. 10111.0111 E. 10111.1111

C. CPU与内存间接不交换信息 D. CPU与内存部分交换信息

什么是信息学奥赛(NOIP)

NOIP(National Olympiad in Informatics in Provinces, 全国青少年信息学奥林匹克联赛)是一项面向全国青少年的信息学竞赛和普及活动。旨在向那些在中学阶段学习的青少年普及计算机科学知识,给学校的信息技术教育课程提供动力和新的思路;给那些有才华的学生提供相互交流和学习的机会。通过竞赛和相关的活动培养选拔优秀的计算机人才。初、高中或其他中等专业学校的学生可报名参加联赛。

竞赛形式竞赛赛制

联赛分两个年龄组:初中组和高中组(普及组和提高组)。每组竞赛分两轮:初试和复试。各省市初试成绩在本赛区前百分之十五的学生进入复赛。

初试形式为笔试,侧重考察学生的计算机基础知识和编程的基本能力,并对知识面的广度进行测试。

复试形式为上机,侧重考察学生对问题的分析理解能力,数学抽象能力,驾驭编程语言的能力和编程技巧、想象力和创造性等。

初赛及复赛程序设计采用 C、C++、Pascal?语言,2022?年后将不可使用 Pascal、C?语言,只能使用 C++。

比赛时间

初赛:十月的第 2?个或第 3?个星期六下午 14:30-16:30(普及,提高)

复赛:十一月的第 2?个星期六下午 14:30-18:00(普及组) 十一月的第 2?个星期六上午 8:30-12:00?, 星期日上午8:30-12:00(共 2?天,提高组)

自 2017?年来,由于参赛人数增多,NOIP?复赛规模的规则进行了调整。包括:每个省赛区可以设立多于两个的复赛考点

(但必须在同一个城市),初赛进入复赛的比例和规模由各省赛区自行决定,在条件许可的情况下,鼓励更多选手参赛。 同时复赛获奖比例将基本保持不变,全国一等奖获奖比例约为复赛参赛选手的 20%。

参加?NOIP 能得到什么

NOIP?竞赛的目的是为了在更高层次上推动普及。普及的重点是根据中学生的特点,培养学生学习计算机的兴趣,使得他们对信息技术的一些本质和核心的东西有更多的了解,其中包括:

计算机的基本组成;

计算机操作系统使用(Windows,Linux 等); 计算机工作的基本原理;

计算机程序设计的基本方法;

至少一门高级程序设计语言(非图形化) (Pascal/C/C++等); 程序设计中常用的数据结构(指针、多维数组、 单链表及循环链表、二叉树等)。

同时,提高他们创造性地运用程序设计知识解决实际问题能力。注重:想象力与创造力;对问题的理解和分析能力; 数学能力和逻辑思维能力;对客观问题和主观思维的口头和书面表达能力;人文精神。包括与人的沟通和理解能力,团队精神与合作能力,恒心和毅力,审美能力等。

赛事含金量 :信息学奥赛与数学、物理、化学、生物奥赛并列为国际五大奥林匹克竞赛项目,且是唯一的工科奥林匹克竞赛项目。和奥数一样,信息学奥赛目前也已逐渐成为小升初、中考特长生招生,高考大学自主招生,以及出国留学背景提升的一项重要申请条件。 获奖难度 :据中国科协统计, 国内五大奥林匹克竞赛一等奖总人数从 2016 年的

7595 人递增到了 2017 年的 8727 人,增长率达 14.9%。其中,信息学奥林匹克竞赛一等奖人数超过数学奥林匹克竞赛 740 人,在占比上超过数学奥林匹克竞赛 8%。尤其在浙江、广东、福建、山东等地,学科奥林匹克竞赛省级一等奖

中,信息学奥林匹克竞赛获奖者已经占据了半壁江山。与全国数百万学习“奥数”的中小学生相比,目前参加信息学奥林匹克竞赛的学生不到 8 万,形成强烈的反差。在总获奖人数上却是数学的 1.4 倍,由于参赛人数上差异大,信息学竞赛在部分省份获奖率超数学联赛的十数倍。对升学就业的帮助 :随着这几年全民奥数的风气愈演愈烈,奥数的学习已经渐渐成为了孩子们课堂外的最大负担。为了拿到奥数竞赛的获奖证书,各学龄段孩子的抢跑现象非常严重。为此,北京、上海、成都等不少省市都陆续出台了遏制奥数发展的“禁奥令”,严令禁止奥数竞赛与小升初、中高考挂钩。 相对而言,目前政策方面对信奥赛还是以扶持鼓励为主。“编程进入浙江高考选考科目”,“编程进入南京