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

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

    既然是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、浮点数了。如何表示?规格化。


作业:

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

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值