位值制是人们用一组规定的符号和规则来表示数的方法,在日常生活和计算机中采用的都是位值制。
我们在日常生活中能够接触到的位值制有十进制、十二进制、十六进制、二十四进制、六十进制等。在日常生活中最常用的是十进制,即按照逢10进1的原则进行记数。我们熟悉的进制还有:六十进制,计时中60s为1min,60min为1h;二十四进制,24h为1天;十二进制,12只物品为1打;十六进制,古代计量时采用,16两为1斤。计算机中一般采用二进制。
位值制中有数位、基数和位权3个要素。数位是指数码在一个数中所处的位置;基数是指在某种位值制中每个数位上所能使用的数码的个数;位权是指在某种位值制中每个数位的大小,一般是基数的若干次幂。以十进制数为例,如果用 a i 表示某一位的不同数码,对任意一个十进制数 A ,可用下式表示:
(1.1)
其中, a i 只能使用0~9这10个数码,所以十进制的基数是10;而10 n -1 是指该数位的大小,也就是位权,例如十进制数312.43,用式(1.1)表示则是312.43=3×10 2 +1×10 1 +2× 10 0 +4×10 -1 +3×10 -2 ,10 2 就表示位权,与3相乘也就是表示数码3在百位上所代表的数值大小。
根据十进制数的数位、基数、位权之间的关系,可以得到十进制数的如下几个特点。
● 每一位可使用10个不同数码表示(0、1、2、3、4、5、6、7、8、9)。
● 低位与高位的关系是逢10进1。
● 各位的权值是10的整数次幂(基数是 10)。
● 十进制数的标志是尾部加“D”或默认不写。
计算机中的常用进制包含二进制、八进制和十六进制。
计算机的硬件基础是数字电路,所有的元器件只有两种状态,考虑经济、可靠、易实现、运算简便和节省元器件等因素,计算机中的数多用二进制表示。与十进制相似,二进制有如下特点。
● 每一位可使用两个不同数码表示(0、1)。
● 低位与高位的关系是逢2进1。
● 各位的权值是2的整数次幂(基数是2)。
● 二进制数的标志是尾部加“B”或直接在下标处注明。
例如,(111.01) B =1×2 2 +1×2 1 +1×2 0 +0×2 -1 +1×2 -2 =7.25。
由于二进制数的阅读与书写很不方便,因此人们又常用八进制数或十六进制数来等价地表示二进制数。
八进制的特点如下。
● 每一位可使用8个不同数码表示(0、1、2、3、4、5、6、7)。
● 低位与高位的关系是逢8进1。
● 各位的权值是8的整数次幂(基数是8)。
● 八进制数的标志是尾部加“Q”或直接在下标处注明。
例如,(465.4) Q =4×8 2 +6×8 1 +5×8 0 +4×8 -1 =309.5。
十六进制的特点如下。
● 每一位可使用16个不同数码表示(0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F),其中A表示10、B表示11、C表示12、D表示13、E表示14、F表示15,用这种方法主要是与十进制记数法区分。
● 低位与高位的关系是逢16进1。
● 各位的权值是16的整数次幂(基数是16)。
● 十六进制数的标志是尾部加“H”或直接在下标处注明。
例如,(FE.4) H =15×16 1 +14×16 0 +4×16 -1 =254.25。
几种常用进制的对照如表1-2所示。
表1-2
从“结绳记事”到机械计算机,计算工具在不同历史时期发挥着重要作用。图灵的思想是计算机科学中可计算性理论的基础。在计算工具不断演化的过程之中,人类的思维也在进化。
思维是人类具有的高级认识活动。按照信息论的观点,思维是对新输入信息与脑内储存知识、经验进行的一系列复杂的心智操作过程。计算思维并非现在才有,它早已萌芽,并随着计算工具的发展而发展。例如,算盘就是一种没有存储设备的计算机(人脑作为存储设备),提供了一种用计算方法来解决问题的思维和能力;图灵机是现代数字计算机的数学模型,是有存储设备和控制器的;现代计算机的出现强化了计算思维的意义和作用。计算工具的发展、计算环境的演变、计算科学的形成、计算文明的迭代中处处都蕴含着思维的火花。图灵奖得主艾兹格·迪杰斯特拉(Edsger Dijkstra)说过:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响我们的思维能力。”
2006年,美国卡内基-梅隆大学的周以真(Jeannette M.Wing)教授提出:计算思维是运用计算机科学的基础概念进行问题求解、系统设计和人类行为理解等涵盖计算机科学之广度的一系列思维活动(智力工具、技能、手段)。当人们必须求解一个特定的问题时,首先会问:解决这个问题有多么困难?怎样才是最佳的解决方案?计算机科学根据坚实的理论基础来准确地回答这些问题,此外在解决问题的过程中必须考虑机器的指令系统、资源约束和操作环境等因素。
计算思维就是通过嵌入、转化和仿真等方法,把一个看起来困难的问题重新阐释成一个我们知道怎样解决的问题。计算思维是一种科学的思维方法,学习和培养计算思维在当今社会已成主流。但学习的内容和要求是相对的,对不同人群应该有不同的要求。计算思维不是悬空的、不可捉摸的抽象概念,而是体现在各个学科中的一种思维。正如学习数学的过程就是培养理论思维的过程,学习物理的过程就是培养实证思维的过程,学习程序设计,其中的算法思维就是计算思维。