csapp-lab1

目录

一、前言

二、配置lab环境

 三、开摆~

1.bitXor

2.tmin

 3.isTmax

4. allOddBits

5.negate

6.isAsciiDigit

7.conditional

8.isLessOrEqual

9.logicalNeg

10.howManyBits

Float​

1. floatScale2

2.floatFloat2Int

3.floatPower2


一、前言

  其实学长在布置作业的时候是有发了一个英文的文件,里面的README是有lab这个东西的简介的。但是里面打开就是全英,真的是懒了。所以完全没看就自己去csdn一顿乱搜。水了一下午的课可算是搞懂了来龙去脉,但当我会看readme时才发现自己确实浪费了许多没必要的时间,唉,下次一定~~watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUlNBLg==,size_20,color_FFFFFF,t_70,g_se,x_16

总的来说csapp是一本关于计算机的大杂烩,什么都讲,包括os 、计算机网络network 、计算机组成、汇编等,而lab则是这本书上配套的练习题,完成起来也是有一定的难度的,实验文档都是英文的,并且实验是建立咋了linux平台上的。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUlNBLg==,size_20,color_FFFFFF,t_70,g_se,x_16

上图找的有道,可以明白了lab就是有许多题,我们要按照它的要求去具体实现。 先来进行lab1-datalab

一下午的时间还是有收获的,下面我们就一步一步的开始吧!

二、配置lab环境

也看了很多关于配置环境文章,有简单需要安装docker,但对于我们小白,还是找个简单的吧

【CSAPP】lab0 环境的配置_刘_浩的博客-CSDN博客_csapp lab 环境配置【CSAPP】lab0 环境的配置引言我的环境配置折腾了一下午,其实很简单(前提是你已经安装过linux虚拟机)。整体分为三步:1. 下载源码2. 配置gcc环境3. 验证具体步骤1. 下载源码https://blog.csdn.net/qq_45703010/article/details/120897185这个是我找到的最简单的一个搭建环境的方法,这里附上一张我自己配好环境的图watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUlNBLg==,size_20,color_FFFFFF,t_70,g_se,x_16

 可以看到当我们输入./btest -g 之后已经列出来我现在的lab1的答题情况,包括Score这道题的得分

Rating这道题的难度也是这道题的满分,Errors出现的错误。

注意事项

​ 接下来就是最重要的注意事项,其中分为int题和float题,注意事项不同,主要根据题目上方的提示进行做题。
int题

允许:

    整数常量0到255 (0xFF)。不允许使用像0xffffffff这样的大常量。
    函数参数和局部变量(没有全局变量)。
    一元整型运算!~。
    二进制整数运算& ^ | + << >>。

不允许:

    使用任何控件结构,如if、do、while、for、switch等。
    定义或使用任何宏。
    在此文件中定义任何附加函数。
    调用任何函数。
    使用任何其他操作,如&&,||,-,或?
    使用任何形式的铸造。
    使用除int以外的任何数据类型。这意味着不能使用数组、结构或联合。

float题

​ 对于需要实现浮点运算的问题,编码规则不那么严格。你可以使用循环和条件控制。你可以同时使用整数和无符号。
​ 可以使用任意整数和无符号常量。可以对int或unsigned数据使用任何算术、逻辑或比较操作。
但被明确禁止:

    义或使用任何宏。
    在此文件中定义任何附加函数。
    调用任何函数。
    使用任何形式的铸造。
    使用除int或unsigned以外的任何数据类型。这意味着不能使用数组、结构或联合。
    使用任何浮点数据类型、操作或常量。
 

 三、开摆~

首先我们打开这个文件

ee3e4e5e71414e57928bdcb0e5f82bcd.png

 直接记事本形式打开就可以了,我们直接在里面修改,做题。之后在这个文件夹里打开终端,然后btest检查错误,订正。整体就是这样。我们先来看第一题:
 

1.bitXor

/*
 1* bitXor - x^y using only ~ and &
 *   Example: bitXor(4, 5) = 1
 *   Legal ops: ~ &
 *   Max ops: 14
 *   Rating: 1
 */
int bitXor(int x, int y) {
  
  

 题意就是只使用~和&来实现x^y的效果。这里需要知道一个知识点异或等于取反的组合。

int bitXor(int x, int y) {
  int a = ~(x&~y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值