电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

计算机系统基础实验总结2023(已满绩点4.1)VIP专享VIP免费

计算机系统基础实验总结2023(已满绩点4.1)_第1页
计算机系统基础实验总结2023(已满绩点4.1)_第2页
计算机系统基础实验总结2023(已满绩点4.1)_第3页
计算机系统基础实验总结院系: 学号: 姓名:成绩:LAB1实验概述Lab1 数据表示,需要我们在 32 位 Linux 虚拟机上使用有限种类的运算符(按位取反,逻辑与,或,非等),并尽可能的精简步骤来补充 bits.c 中的函数内容,以实现规定的函数功能。函数补充完成后可输入特定指令提交评阅 。bits.c 中的函数分为位操作函数,补码运算函数,浮点数表示函数几类,完成实验以掌握各种数据类型在计算机中的表示方法,与 C 语言数据类型的位级表示及操作。实验收获总结在对 lab1 中十五个位运算函数的补充过程中,我初步了解了 Linux 系统的一些命令和操作,也加深了位的表示,二进制补码运算,浮点数 IEEE754 表示等方面的理解。这次试验对我的理论课学习有很大帮助,更引起了我在学习计 算 机 学 院 计算机类理论与实验课的兴趣。在之后的实验和学习中我希望能学习到更多的有关计算机系统的知识并加以实践应用。具体题目分析1. bitOr(只利用 ~ 和 & 操作,将数 x 和 y 相或)括号内为题目翻译思路:由德摩根定律可知,取或,等价于将两个数的取反值~x, ~y 相与后,再取反。代码:int bitOr(int x, int y) { return ~((~x)&(~y));}2. evenBits(返回值为所有位均是 1 的数) 思路:所有位均为一,即 0x55555555,即将 0x55 左移八位,再左移十六位。 代码:int evenBits(void) { int a = 0x55 << 8 | 0x55; return a << 16 | a;}3.isTmin(判断一个数 x 是否是 int 型最小值 )思路:int 型最小值(补码是 0x80000000)有性质:tmin + tmin = 0. 所以 tmin = ~tmin+1.但是要特判去掉同样满足的 0 。 代码:int isTmin(int x) { return !(x+x)&!!(x);}4. allEvenBits(判断一个二进制数偶数位是否全为 1) 思路:若一个二进制数偶数位为 1,奇数位为 0,则这个数为 0x55555555。 先将 x=x&0x55555555,将这个数奇数为变为 0,之后 x^0x55555555 判断该数是否为 0x55555555。 代码: int allEvenBits(int x) { int y=0x55;y |= y<<8;y |= y<<16; x &= y; return !(x^y);}5. anyEvenBit(判断一个二进制数任意偶数位是否有 1)思路:判断偶数位是否含有 1,只需要将所有偶数位与 1 相与,奇数位与 0 相与。若结果为 0,则偶数位没有 1。代码:int anyEvenBit(int x) {int mask = 0x55 | 0x55 << 8; mask = mask |...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

最好的沉淀+ 关注
实名认证
内容提供者

行业文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部