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

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

1 课 程 实 验 报 告 课程名称: 计算机系统基础 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 2016年 5月 24 日 计算机科学与技术学院2 目录 实验1: .2 实验2: .9 实验3: .22 实验总结 301 实验1: 数据表示 1.1 实验概述本实验的目的是更好地熟悉和掌握计算机中整数和浮点数的二进制编码表 示。 实验中,你需要解开一系列编程“难题”——使用有限类型和数量的运算操 作实现一组给定功能的函数,在此过程中你将加深对数据二进制编码表示的了解。 实验语言:c; 实验环境: linux 1.2 实验内容需要完成 bits.c 中下列函数功能,具体分为三大类:位操作、补码运算和 浮点数操作。 1.3 实验设计源码如下: /* * lsbZero - set 0 to the least significant bit of x * Example: lsbZero(0 x87654321) = 0 x87654320* Legal ops: ! ~ x = x>* Max ops: 62* Rating: 2*/ int byteNot(int x, int n) {//x第n个字节每位都和1异或实现取反int y = 0 xff;n = n>* Max ops: 20* Rating: 2 */ int byteXor(int x, int y, int n) {//把x和y的第n个字节取出来异或,再转换为逻辑的0和1n = n>n;y = y>>n;x = xy = yreturn !!(x^y); } /* * logicalAnd - x return x; } /* * logicalOr - x || y* Legal ops: ! ~ return x; } /* * rotateLeft - Rotate x to the left by n* Can assume that 0 > !* Max ops: 25* Rating: 3 */ int rotateLeft(int x, int n) {//先构造低n位为1,高(32-n)位为0的数z,x左移n位后的数加上x右 移(32-n)位的数z = ~(((1>31)>(32+(~n+1)))y = x>31;return !(!y); } /** mul2OK - Determine if can compute 2*x without overflow* Examples: mul2OK(0 x30000000) = 1* mul2OK(0 x40000000) = 0* * Legal ops: ~ m = ((x>>31)return m^0 x1; } /** mult3div2 - multiplies by 3/2 rounding toward 0,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值