Charles Petzold《Code》----2017.1.5 读7章

注:所有笔记均为自己的理解总结,可能并非书本原文,对错不予负责。

摘要:
这里写图片描述

为什么会出现数字:
多数历史学家认为数字最初创造出来是用来数东西的。比如某人有4只鸭子,他可能画4只鸭子作为记录:
这里写图片描述
后来,专门负责画鸭子这项工作的人想:“我为什么一定要画4只鸭子呢?为什么不能只画1只鸭子,然后用其他方法(比如用一条竖线代表一只鸭子)来表示有4只呢?”
这里写图片描述

为什么要有进制的概念:
若某人有27只鸭子,画27根竖线就太傻了:
这里写图片描述

为什么普遍会用十进制:
大多数人使用的数字系统是基于10(有时候是5)的,这种情况并不奇怪。最初人们使用手指来数数的。要是人类进化成有8个或12个手指,人类计数的方式就会有所不同。英语Digit(数字)这个单词也可以指手指或脚趾,单词five(五)和单词fist(拳头)有相同的词根,这种情况并不是巧合。

罗马数字系统:
这里写图片描述
字母I代表一个一,这可能来自于一条竖线或伸出的一个手指。字母V很可能是一只手的符号,代表五;两个字母V组成字母X,代表十;字母L代表五十;字母C来自拉丁文中表示一百的单词—centum;字母D代表五百;字母M来自拉丁文中的单词—mille,代表一千。

阿拉伯数字系统:
背景故事:我们现在使用的数字系统通常称为阿拉伯数字系统,或称为印度—阿拉伯数字系统。它起源于印度,但由阿拉伯数学家传入欧洲。一位著名的波斯数学家—Muhammed ibn-Musaal-Khwarizmi(由它的名字得到单词algorithm(算法))在大约公元825年写了一本代数书,书中用的就是印度的数字系统(阿拉伯数字)来计数。产生于公元1120年的拉丁文译本对整个欧洲用现在的阿拉伯数字代替当时使用的罗马数字的过渡过程产生了很大的影响。
印度—阿拉伯数字系统与先前的数字系统相比在以下三个方面不同:
1、印度—阿拉伯数字系统是和位置相关的。
2、没有代表10的专门符号。
3、有一个别的数字系统里都没有的“零”,它支持位置表示法。

数字“42705.684”是:
这里写图片描述

利用加法表和乘法表能够很轻松的进行两个数的加法和乘法,这在其他进制中同样适用。

书的作者Charles Petzold是著名的《Programming Windows》的作者。全书风趣幽默,生动活泼,充满生活中的实例和直观的插图。虽以“编码”为题,却是以“编码”为主线,深入浅出地讲解了逻辑代数、离散数学、数字电路、微机原理、汇编语言、编译原理和操作系统等计算机原理方面的基础知识。与计算机专业课本相比,没有艰涩的定义和描述,充分地把抽象的内容形象化了。它可以被定位为大众化的计算机科普书籍,然而与一般的国内计算机科普物相比,它的信息量、专业程度绝对是高一个层次的。因此很适合对计算机有一定应用基础,有兴趣了解一点计算机机理的朋友。同时也可作为学习数字电路、微机原理等课程的启发性引论。   对于计算机专业学生,我觉得此书同样非常值得一看。就个人体会,举一二例:在看到二进制的加减实现那块,虽然自己原先清楚那些概念和方法,但是基于死板的公式和法则的,没有一个直观的体会。而在《CODE》中,分别釆用实物、简单电路、十进制数进行类比,逐步揭示了补码、加法器等机理,可谓温故而知新。阅书中对汇编语言在各个节循序渐进的引入,才发现原来汇编那些“古怪”的逻辑竟是如此的自然。而书中对数字电路的阐述完全是基于计算机实际应用的,从逻辑电路到触发器、存储器,直至微处理芯片,每一步在讲解电路原理的同时都辅以如何达到应用目的,让人不会觉得空洞和抽象。   此书比较注重内容的历史连贯性,各个节都提及了相关技术的发展史,让我们认识到数字技术与计算机的发明及应用是一个逐级推进的历史过程。同时一些趣闻轶事也使我们开怀一笑。另一个特点是书中的不少东西是可以亲自实践的(通过实物或软件仿真),比如一些简单数字电路的实现。这很可能激发一些朋友自己造一块CPU的冲动。   高手高就高在把深奥的理论知识平民化了。总之,我觉得如果你是计算机专业学生,了《CODE》,也许会发现原来还有一些简单的道理自己并不清楚,有茅塞顿开之感。而对不了解计算机的人来说,你将会豁然开朗——原来计算机并不神秘!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值