<csapp> data lab (《深入理解计算机系统》lab1)

po主是在读大学生一枚,最近在学校中上ics课(introduction to computer science)并做配套的10个lab。特在此将lab内容以及我的思考解答过程与各位大神分享,希望能给真正想了解此课及这些实验之人一些帮助。若我的所言有不当之处,也请各位多多加以指正,也算是带一带我这个新人,我将感激不尽。


废话不多说,直入正题。

datalab 是初读此课的新手将要面临的第一个lab(po主当初花了很久才适应啊!),相对来说比较简单,主要是关于bits-level运算的一些题目。说实话,这个lab与整门课的方向比较脱节,很多bits-level的实现也确实更像智力测试题,不过既然有,便要攻克之。在做完之后,也确实对底层bits-level运算实现的理解有颇多加深。


Q1:(蓝色部分是lab要求,其中包括对要求实现的函数的解释、举例、可以用的bits-level操作、最多操作数以及分值,下面是我的函数实现)


很经典的bits-level实现绝对值运算,这也是我认为整个lab中唯一对以后实际应用(包括面试)有价值的运算。不用if操作的绝对值运算可以有效加快运算速度。

第一步取符号位,(正为0,负为111……1),第二步抑或操作对于正数相当于不变,对于负数相当于取反加一(即得相反数),从而完成了统一的取绝对值。

************************************************************************************************************************************************************************

Q2:


狄摩根定律,不解释。

************************************************************************************************************************************************************************

Q3:

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值