华中科技大学计算机系统基础实验报告.docxVIP

华中科技大学计算机系统基础实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.. . . ... . . . 课 程 实 验 报 告 课程名称: 计算机系统基础 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 2016 年 5 月 24 日 计算机科学与技术学院 .. . . ... . . . 目录 实验 1: 2 实验 2: 9 实验 3: 23 实验总结 32 实验 1: 数据表示 实验概述 本实验的目的是更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。 实验中,你需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数 ,在此过程中你将加深对数据二进制编码表示的了解。 实验语言:c; 实验环境: linux 实验容 需要完成 bits.c 中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。 实验设计 源码如下: /* lsbZero - set 0 to the least significant bit of x * Example: lsbZero(0 = 0* Legal ops: ! ~ ^ | + Max ops: 5 Rating: 1 */ int lsbZero(int x) { //x 右移一位再左移一位实现把最低有效位置 0 x = x1; x = x1; return x; } /* byteNot - bit-inversion to byte n from word x Bytes numbered from 0 (LSB) to 3 (MSB) * Examples: getByteNot(01) = 0x1234A978 * Legal ops: ! ~ ^ | + Max ops: 6 Rating: 2 */ int byteNot(int x, int n) { //x 第 n 个字节每位都和 1 异或实现取反int y = 0xff; n = n3; y = yn; x = (x^y); return x; } /* byteXor - compare the nth byte of x and y, if it is same, return 0, if not, return 1 * example: byteXor(0 0 1) = 1 * byteXor(0 0 2) = 0 * Legal ops: ! ~ ^ | + Max ops: 20 Rating: 2 */ int byteXor(int x, int y, int n) { //把 x 和 y 的第 n 个字节取出来异或,再转换为逻辑的 0 和 1 n = n3; x = xn; y = yn; x = x(0xff); y = y(0xff); return !!(x^y); } /* logicalAnd - x y * Legal ops: ! ~ ^ | + Max ops: 20 Rating: 3 */ int logicalAnd(int x, int y) { //把 x 和 y 分别转化为逻辑的 0 和 1,再相与x = (!(!x))(!(!y)); return x; } /* logicalOr - x || y * Legal ops: ! ~ ^ | + Max ops: 20 Rating: 3 */ int logicalOr(int x, int y) { //把 x 和 y 分别转化为逻辑的 0 和 1,再相或x = (!(!x))|(!(!y)); return x; } /* rotateLeft - Rotate x to the left by n Can assume that 0 = n = 31 * Examples: rotateLeft(04) = 0* Legal ops: ~ ^ | + ! Max ops: 25 Rating: 3 */ int rotateLeft(int x, int n) { //先构造低 n 位为 1,高(32-n)位为 0 的数 z,x 左移 n 位后的数加上 x 右移(32-n)位的数z 即可 int z; z = ~(((131)31)n); x = ((x(32+(~n+1)))z)+(xn); return x; } /* parityCheck - returns 1 if x contains an odd number of 1s Examples: parityCheck(5) = 0, parityCheck(7

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档