您的位置:首页 > 理论基础

Learning by doing 二 深入理解计算机系统(CS:APP)一信息表示

2013-10-17 22:22 525 查看
    先说标题。直译是,《计算机系统:一种程序员的视角》。翻译成深入,确实很微妙。

    既然是lenging by doing。先说反复提到的程序。show_bytes。

    程序原理:

    1、指针类型强转。2、显示16进制数。就这两步。

    实验:

    运行ubuntu10.04.(机器太破。而且我不习惯新版的UI。。)。

    测试数据12345。结果39 30 00 00.传递指针的结果是可变数值。

    分析:

    本书的实质是什么?深入理解系统。12345存储的实质是0x00003039,小端机中以0x393000存储,C语言中,int型实质是什么,32位二进制数。int指针的实质是什么?指向32为首地址,并且告诉程序,一次读取4字节。强转的意思是什么?char * 占1字节,及一次读取1字节。通过传输首地址我们就能打印该地址存储的实质是什么。

     结论:

      计算机中信息的表示就是二进制,系统定义了如何解读二进制。

     第一章组织结构是:

        1、机器中存储实质是二进制

        2、二进制的计算是什么?布尔运算。

        3、升级版?逻辑运算。

        4、讲完普通运算,二进制高级运算——移位,后续乘法除法的基础。

        5、整数表示,范围,所谓的类型本质,就是定义有效位,都是为了解决实际问题。(人类只发明了电子电路,其他的都是人类自定义的。所以有人说计算机不是科学,我觉得也是。我认为它是艺术。)

       6、定义了不同类型,就得考虑类型转换,因为它们存储本质是相同。所以引入了数学概念,映射。

       7、终于可以表示计算了。加法问题在哪?溢出!从回前面的概念,群的映射来解决问题。都是数学公式,其实不难,耐着性子看完就觉得原来如此了。

       8、特殊乘除。为什么?乘除太慢!!。2的幂。想到移位!!上界下界的变换。x/y的上界 =  (x+y-1)/y的下界。比如你想求x/20的上界。但是不想除完加一。

       9、浮点数了。如何表示?规格化。

作业:

      还没写呢。。。之后以代码的方式补上。

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息