LanYunのBlog

LanYunのBlog

马上订阅 LanYunのBlog RSS 更新: https://lanyundev.com/atom.xml

CSAPP_Lab之DataLab

2022年7月1日 23:35

前言

出于记录📝和复习的需要,整理了下本人在做CSAPP深入理解计算机系统这本书的配套实验Data Lab的内容 [Updated 12/16/19] (README, Writeup, Release Notes, Self-Study Handout)

关于CSAPP配套实验更多内容或配套文件等,请访问CSAPP_Lab

介绍

这个Lab主要涉及了位运算,补码和浮点数等内容。完成Lab不仅要实现函数的功能,还要求仅用规定的操作符,操作符数目也在限定范围内,详细可以看我部分翻译的README文件.
由于题目限定在32位系统中,本人系统为ARM架构,故测试程序在本人docker x86_64的linux环境中运行.

通过make clean && make && ./btest命令可以看到题目的分数.

image-20220701234907932

题目

部分汉化:点我下载bits.c题目文件

  • bitXor(x,y) 只使用 ~ 和 & 实现 ^
  • tmin() 返回最小补码
  • isTmax(x) 判断是否是补码最大值
  • allOddBits(x) 判断补码所有奇数位是否都是1
  • negate(x) 不使用负号 - 实现 -x
  • isAsciiDigit(x) 判断 x 是否是 ASCII 码
  • conditional(x, y, z) 类似于 C 语言中的 x?y:z
  • isLessOrEqual(x,y) x<=y
  • logicalNeg(x) 计算 !...

剩余内容已隐藏

查看完整文章以阅读更多