《编码:隐匿在计算机软硬件背后的语言》一书勘误

版权声明:本文基于cainiao_23333的原创文章、参照Charles Petzold 的英文原版及英文原版的官方勘误,修改整理,遵循 CC 4.0 BY-SA 版权协议,转载请附上下面的出处链接和本声明。

本文链接:https://blog.csdn.net/cg1985cg/article/details/107959696

cainiao_23333原文链接:https://blog.csdn.net/weixin_41876385/article/details/99736268

 

《编码:隐匿在计算机软硬件背后的语言》勘误

版次:2012年10月第1版
印次:2020年4月第25次印刷


P73    第4行    享改为亨
P105    倒数第2行 W上面少一个横线
P167    第12行    非或门改为或非门
P167    第13行    Q反改为Q非
P177    倒数第6行,原英文版Page 171: Just below the center of the page, the sentence "The outputs of the second stage are inputs to the first stage." should read "The outputs of the first stage are inputs to the second stage." Thanks to Jonathan Gold for reporting this error.根据这一点,中文版的这个地方,也应该改为:第一级R-S触发器的输出是第二级的输入
P178    第1行,与英文原文意思不同,这样翻译更好:这改变了第一级触发器的状态,因为(在第一级里使用的)取反的时钟输入为1。但是第二级触发器状态不变,因为它使用的是未取反的时钟输入0。
英文原文:This changes the first flip-flop stage because the inverted Clock inputs is 1. But the second stage remains unchanged because the uninverted Clock input is 0.
P194    第5行     除数改为被除数(注:事实上,255用16进制表示是FF,所以0-255数字除以16,商作为高位,余数作为低位即可得到2位16进制数字,书上这句话完全可以删去,参看英文原版,作者并没有这句话,应该是翻译作者自己加上的)
英文原文:To calculate those two digits, divide the number by 16 to get the quotient and the remainder. Let's use an earlier example—the decimal number 182.
P198    倒数第5行,之后前面应该加上否则
英文原文:Further changes to the Data input don't affect the outputs until the Clock input goes to 1 again.
P208    最上面的图中,“数据输入”和“写操作端”文字应互换位置,下面的两个RAM中的W和DI也应该互换位置,否则不能独立写入某一个RAM数据。(经 二十四桥明月夜 指出)
P222    倒数第9行,做完了这些工作,算得上万事俱备只欠东风了……其实英文原版中没有这个“万事俱备只欠东风”,译者加上后会让人觉得事情刚准备好还没有开始做,而其实这时只剩下最后一步“让加法器停下来就可以了”,因此这句可以去掉,实在要改可以改为“基本上算是大功告成了”。
英文原文:And after everything is done, we want the automated adder to simply stop so that the contents of the RAM array can be examined.
P231    表的倒数第2行的Subtract的c和t之间多了一个空格
P234    倒数第5行,TANSTAAFL,天下没有免费的午餐,英文原文说是There Ain't No Such Thing As A Free Lunch. 怀疑英文原文也有问题,正确符合语法的表示应该是:There's no such thing as a free lunch。
P240    第1行,应该改为“置位信号时的地址输入”。英文原文:The 16-bit address that's latched from the RAM array is an input to both the 2-to-1 Selector (which allows this address to be an address input to the RAM array) and the 16 bit counter for the Set It function.(经 二十四桥明月夜 指出)
P244    第3行,“这个字节与地址001Eh存储的值相加,所得的值恰巧是Halt指令,但同时它也是一个有效的数字”,这句话应该翻译为:“我们将再拿这个字节与地址001Eh存储的值相加。001Eh里恰好是Halt指令,不过它也是一个有效的数字。”如果用原翻译,会以为加起来的值恰巧是Halt指令,容易让人产生误解。
英文原文:This byte is added to the value at location 001Eh. This happends to be the Halt instruction, but of course it's also a valid number.
P259    倒数第2段最后一句,没有大毛病,为了跟原文意思更接近,也更容易理解,可以加一个字,改为:“虽然继电器计算机被称为电动机械计算机,但真空管是第一台电子计算机的基础。”
英文原文:While relay machinese were known as electromechanical computers, vacuum tubes were the basis of the first electornic computers.
P261    倒数第2段,讲香农的,“一片题为……”,应该是“一篇题为……”。
P266    第5行,Geoffrey Dummer,应该翻译为:杰弗里,不是杰里佛。
P271    第2行,“只不过此处我用的是异或门”,应改为“只不过那里我用的是或非门”。
英文原文:except that I used NOR gates.
P280    倒数第3行,多了一个逗号
P287    倒数第1行,“以下是8080的逻辑运算指令”就可以了,表中没有算术运算指令(前面已经列过了)。
P290    倒数第9行,所有的“高”和“低”都反了(?)。
英文原文(也有问题?):The lowest bit (shifted out of the bottom) becomes the highest bit (shifted into the top) and also determines the state of the Carry flag.
P295    第1段文字,应为:LXI指令节省了一个字节。而且上表中最后一条LXI指令为栈指针赋了一个特殊的值。通常下面的指令作为微处理器复位后首先执行的指令之一。
英文原文:The LXI instruction saves a byte. In addition, the last LXI instruction in the preceding table is used to set the Stack Pointer to a particular value. It's not uncommon for this instruction to be one of the first instructions that a microprocessor executes after being restarted.
P295    倒数第4行,DAD指令一般用来计算存储器地址,在标志符中只对进位标志符CF有影响。
英文原文:The DAD instruction is normally used for calculating memory addresses. The only flag that the instruction affects is the Carry Flag.
P311    表中12对应的字符,“身份不明?”就是“Who Are You",下面正文中也是用的英文,如果要翻译,统一翻译成“身份识别码”吧。
P317    第3行,“下面将这33个控制字符……”,翻译版本表已经在上面了,所以应该改为:“上表中将这33个控制字符……”。
P317    倒数第1行,换页符不是12h,是0Ch。英文原文也好像错了。
P348    两段代码有问题。所有的AND指令要改成ANI。NibbleToAscii的ANI指令要放到第一行CPI的前面。这一修改是根据英文原文勘误:Page 322: In the code examples, the CMP instruction should be CPI. The two ADD instructions should be ADI. The AND instruction should be ANI. That ANI instruction should actually be the first instruction of the NibbleToAscii subroutine. Thanks to Erik Larismaa for reporting these errors.
P349    倒数第5行,下画线改为下划线。
P355    最后1行中间0D 0A 33 30 39 31 31 0D 0A(原来第一个31位置错写成3)
P361    第3-4行翻译有问题,改为:QDOS最终更名为86-DOS,并由微软公司授权。
英文原文:QDOS was eventually renamed 86-DOS and licensed by Microsoft Corporation.
P390    倒数第2行,将for语句会一次为a赋值中的一次改为依次
//下面一处错误为cainiao_23333原文中提及,2020年4月第25次印刷版本中没有出现
//P390    第2行JEPG应改为JPEG   注:JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写
P417    第3行MPEG 应为 Moving Picture Experts Group(该组织官方网址 https://mpeg.chiariglione.org/)

参考资料:

英文原版的勘误:https://www.charlespetzold.com/code/

Errata - Hardcover Edition

Page 343: In the formula in the second bulleted item, the exponent of the 2 should be -126 rather than -127:

  • (-1)^s × 0.f × 2^(-126)

Thanks to Erik Larismaa for reporting this error.

Ambiguities and Clarifications

Page 6: In the second full paragraph, the last sentence is: "The receiver sees the short blink and the long blink and knows it's an A." Actually, the receiver doesn't know what letter is being sent until the pause that indicates the end of the letter. Thanks to Larry Smith for reporting this flaw.

Page 7: In the first paragraph I state: "SOS isn't an abbreviation for anything -- it's simply an easy-to-remember Morse code sequence." Many people are under the mistaken impression that SOS stands for "Save Our Ship" or "Save Our Souls." However, this meaning appears to be spurious; I can find no evidence that the letters SOS were chosen to stand for anything. For example, the Oxford English Dictionary, 2nd edition, volume XVI, page 34 says of SOS: "The letters so, and s, chosen because easily transmitted in Morse code."

Chapter 3: The discussion of Braille was not meant to be exhaustive. In particular, Grade 2 Braille also includes 76 short-form words, such as "imm" for "immediate". These include "ab" for "about" (so it would require only two symbols rather than the 4 shown on page 19) and "Brl" for "Braille," implicitly including a capital. The example of Louis Braille's name in Braille would thus require only 3 symbols for the last name rather than the 8 shown on page 20. Thanks to Ed Godfrey for this information.

Page 26: The first paragraph indicates that the negative terminal of a battery is called an anode and the positive terminal is called the cathode. Some readers have questioned whether this is correct, since it seems opposite from other uses of the words anode and cathode. The terminology used in Code was taken from:

Linden, David, ed. Handbook of Batteries, 2nd edition. New York, NY: McGraw-Hill, Inc., 1995, page 1.3.

The perspective inside the battery corresponds more closely to other uses of the words.

Page 29: The penultimate paragraph contains the statement "the current (I) is 1.5 divided by a large number." The current is not 1.5. The voltage is. The statement might be better written as: "the current (I) equals 1.5 volts divided by a large number." Thanks to Habib Heydarian for reporting this ambiguity.

Page 49: In the last paragraph the statement occurs: "when adding two Roman numerals, you simply combine all the symbols from both numbers and then simplify the result using just a few rules." The passage should have mentioned that this only works well when Roman numerals are written without using the subtraction principle, for example, without using IV to mean 4. The subtraction principle was a comparatively modern enhancement to Roman numeration. Thanks to Larry Smith for reporting this omission.

Page 284: The last paragraph states: "The x86 family continued in 1985 with the 32-bit 386 chip, in 1989 with the 486, and beginning in 1993, with the Intel Pentium line..." Somehow the 186 and 286 were omitted. The sentence should begin: "The x86 family continued in 1982 with the 186 and 286 chips, in 1985 with the 32-bit 386 chip..." Thanks to Luis Alonso Ramos and Larry Smith for reporting these omissions.

Page 343: About a third of the way down the page appears the statement "If e equals 255 and f equals 0, the number is positive or negative infinity, depending on the sign s." This statement implies that infinity is a number, which it is not. The statement might be better phrased "If eequals 255 and f equals 0, the value is positive or negative infinity, depending on the sign s." Thanks to Jonathan Gold for pointing this out.

Page 355: In the last full paragraph, the sentence occurs: "The print statement -- like many ALGOL statements (but not begin or end) -- must be followed by a semicolon." Actually, a semicolon is not required before the end statement, although it doesn't hurt to have one. Thanks to Larry Smith for clarifying this.

Page 382: The first paragraph contains the sentence: "Java programs must be compiled, but the result of the compilation isn't machine code. It's instead Java byte codes." That's the usual case. However, Java source code can be compiled into machine code if a platform-independent binary is not required. Thanks to Larry Smith for clarifying this.

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
### 回答1: 《Java编程思想》是一本经典的Java编程教材,由Bruce Eckel撰写。勘误是指对中错误的修正或补充。 首先,需要注意的是这本非常全面,覆盖了Java语言的方方面面。然而,由于计算机技术的快速发展,中可能存在一些错误或遗漏。 勘误是为了确保读者获得正确的信息和指导,因此,许多作者或出版商会提供籍的勘误表。读者可以通过查看这些勘误表来了解中可能存在的错误,并及时进行校正。 在《Java编程思想》这本勘误中,可能会包含一些代码错误、文字错误、图表错误等。这些错误会被列出,并附上正确的版本。 同时,勘误也可能会补充一些遗漏的内容,以完善籍的内容。这些内容可能包括新的Java语言特性、最新的开发工具或最佳实践等。 读者可以通过查找《Java编程思想》的勘误表,来获取修正后的版本,以确保在学习和实践过程中不会受到错误信息的影响。 总之,勘误是修正《Java编程思想》中可能存在的错误或遗漏的过程。通过查找勘误表,读者可以获得更准确和全面的信息,提高学习效果和编程水平。 ### 回答2: 《Java编程思想》是一本关于Java编程的经典著作,由美国作家Bruce Eckel撰写。本内容深入浅出,系统地介绍了Java编程的各个方面,并包含了大量的实例和示例代码帮助读者理解和掌握相关知识。 关于《Java编程思想》的翻译勘误,根据我所了解,尽管本经过了不少次修订和校对,但仍然难免存在一些错误或疏漏。这些错误可能包括错别字、语法问题、排版错误等。 如果读者在阅读这本的过程中发现了错误,可以通过与出版社联系,向他们报告错误并提供正确的信息。出版社会在下一版中进行勘误修正,以确保读者能够得到更准确、更完整的内容。 对于一本经典的图来说,勘误是常见的,而且也是作者和出版社重视籍质量的表现。读者可以通过关注官方网站或者社区论坛等渠道获取最新的勘误信息,以确保自己所持有的版本是最正确的。 总之,《Java编程思想》是一本非常有价值的Java编程指南,对于学习和掌握Java编程语言以及面向对象编程思想的读者来说都是不可或缺的学习资料。尽管存在一些可能的勘误,但读者可以通过与出版社联系来帮助改进和完善这本的质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值