课 程 实 验 报 告 课程名称: 计算机系统基础 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 年 月 日 计算机科学与技术学院 目录 实验 1: ...................................................................................................... 1 实验 2: ...................................................................................................... 7 实验 3: .................................................................................................... 2 4 实验总结 ................................................................................................... 3 4 实验1: 数据表示 1.1 实验概述 实验目的:更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。 实验目标:加深对数据二进制编码表示的了解。 实验要求:使用有限类型和数量的运算操作实现一组给定功能的函数。 实验语言:c。 实验环境:linux 1.2 实验内容 需要完成bits.c 中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。 1)位操作 表1 列出了bits.c 中一组操作和测试位组的函数。其中,“级别”栏指出各函数的难度等级(对应于该函数的实验分值),“功能”栏给出函数应实现的输出(即功能),“约束条件”栏指出你的函数实现必须满足的编码规则(具体请查看 bits.c 中相应函数注释),“最多操作符数量”指出你的函数实现中允许使用的操作符的最大数量。 你也可参考 tests.c 中对应的测试函数来了解所需实现的功能,但是注意这些测试函数并不满足目标函数必须遵循的编码约束条件,只能用做关于目标函数正确行为的参考。 表1 位操作题目列表 级别 函数名 功能 约束条件 最多操作符数 1 lsbZero 将x的最低有效位(LSB)清零 仅能使用! ~ & ^ | + << >> 5 2 byteNot 将x的第n个字节取反(字节从LSB开始 到 MSB依 次 编号 为0-3) 仅能使用! ~ & ^ | + << >> 6 2 byteXor 比 较 x和y的第n个字节(字节从LSB开始 到 MSB依 次 编号 为0-3),若 不同 ,则返 回 1; 若 相同 ,则返 回 0 仅能使用! ~ & ^ | + << >> 20 3 logicalAnd x&& y 仅能使用! ~ & ^ | + << >> 20 3 logicalOr x|| y 仅能使用! ~ & ^ | + << >> 20 3 rotateLeft 将x...