To be or not to be = ??

- - 3 条留言 -

最近因为一个项目,开始疯狂地复习早已忘掉的C语言。在图书馆借了一本书,是英文原版翻译成日语的,觉得不错。倒不是因为他的C++解释的多么明了,而是整本书充满了幽默感。

先来看英文的原名:How Not to Program in C++。一般的书都是些How to,而这本是How not to!日语翻译的比较贴切,叫《C++编程的陷阱》。里面用了大量的作者在教学过程中遇到的错误的程序作为实例来讲解在C++编程的过程中会遇到的错误,每个例子就是一节,在一些空白处附带好多有关数值,计算机等方面的生活上的幽默。书的后面是一些暗示和解答,暗示可以跳很多次,直到最后的答案。所以,看完之后印象比较深,自己也就会少犯些错误。

看一个书中的小幽默:

莎士比亚留下了一句很有名的台词:To be or not to be? 在计算机科学里,我们给出了它的答案:FF。

  0x2B | ~0x2B == 0xFF

注:我把这个笑话讲给没有计算机知识的人时,基本上他们都只是用感到很奇怪的眼光看我。而我把它讲给有计算机知识的人说时,他们都是经过一番考虑后说:没错。真正笑出来的人,100个人里只有1个。

蛇足——恐怕很多人真的看不懂上面的公式,稍微解释一下。TO = 2; Be = B; NOT = ~; OR = |; 0x是计算机语言里用来表示16进制数的方法。