Charles Petzold《Code》----2017.1.22 读13章(非常聪明!)

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

摘要:向我们介绍了计算机如何做减法运算。其中介绍了以下几个概念:9的补数或补码、1的补数(相反码、反码)、求补器、10的补数、2的补数。


不使用借位进行减法的两种方法:

1、当被减数大于减数时:
例如:
125-25,
可以转化为
(999-25)+1+125-1000。
其中999-25就是25的9的补数或补码

2、当被减数小于减数时:
例如:
25-125,
可以转化为
999-(999-125+25),对结果再取一个相反数即可。

以上也可应用于二进制,然后相对应的就称为1的补数。1的补数就是原来的0变成1,1变成0,所以,1的补数有时也称为相反数或反码

求补器:
这里写图片描述


计算机如何做减法:

其实就是在做加法,只是将负数也用正数(负数的10的补数或2的补数)来表示。

十进制:
我们用0~999的数来表示-500~499:
这里写图片描述
一个负数的10的补数可以这样计算:负数相反数的9的补数再加1。
例:
1、143-78,-78的10的补数是999-78+1=922,再加上143,等于1065,忽略上溢,取后三位,就是65。
2、65-150,-150的10的补数是999-150+1=850,再加上65,等于915,915其实就是-85。

二进制:
这里写图片描述
可以表示的数的范围从-128~127。最左边的一位称为符号位,1表示负数,0表示正数。
例:
124-125,
124是01111100,
125是01111101,
-125的2的补数就是01111101取反再加1,是10000011。要回到原来的数只需同样的操作:取反后加1。
所以124-125就是01111100+10000011,结果是11111111,其实就是-1。

不生效的情况:
这里写图片描述


有符号的二进制数和无符号的二进制数:
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值