计组实验datalab-handout实验报告
更新时间:2023-11-07 07:24:01 阅读量: 教育文库 文档下载
- 计组实验答案推荐度:
- 相关推荐
计算机组成实验 实验1: 实验题目:datalab-handout 实验目的:根据bits.c中的要求补全其中的函数,并根据README中的要求在linux环境下检测函数是否符合要求。 实验环境:Ubuntu14.04 x86系统 实验内容及操作步骤: int bitAnd(int x, int y) { return ~((~x)|(~y)); } 运用了德摩定律,~((~x)|(~y))= (~ (~x))& (~ (~y))=x&y。 int getByte(int x, int n) { return (x>>(n<<3))&255; } 要从x中提取一个字节,而字节编号为0~3。一个字节为8位2进制。n<<3即为n*8位。x>>(n<<3)即为x只保留下除去最后n*8位剩下的部分。再&255则只保留剩下的最右一个字节。得出的结果便为编号指定要提取的那个字节。 int logicalShift(int x, int n) { int mask=~(((1<<31)>>n)<<1); return mask&(x>>n); } ~(((1<<31)>>n)<<1)即为232-n-1,也就是mask=(000…011111…1)2(n个0,31-n个1)。再mask&(x>>n)即为将x算术右移n位后并上mask这个前n位为0的掩码,使当x为负数时位移补1换为补0。 int bitCount(int x) { int result; int tmp_mask1=(0x55)|(0x55<<8); int mask1=(tmp_mask1)|(tmp_mask1<<16); int tmp_mask2=(0x33)|(0x33<<8); int mask2=(tmp_mask2)|(tmp_mask2<<16); int tmp_mask3=(0x0f)|(0x0f<<8); int mask3=(tmp_mask3)|(tmp_mask3<<16); int mask4=(0xff)|(0xff<<16); int mask5=(0xff)|(0xff<<8); result=(x&mask1)+((x>>1)&mask1); result=(result&mask2)+((result>>2)&mask2); result=(result+(result>>4))&mask3; result=(result+(result>>8))&mask4; result=(result+(result>>16))&mask5; return result; } 本题采用二分法,先计算x每两位中1的个数,并用对应的两位来储存这个个数。然后计算每四位1的个数,再用对应的四位进行储存。依次类推,最后整合得到16位中1的个数,即为x中1的个数并输出。 int bang(int x) { return (~((x|(~x+1))>>31))&1; } (x|(~x+1)即当x为0时,结果为(00…0)2(31个0)。其余情况最首位均为1。因此右移31位后再取反只有x=0时最后一位为1。再&1取最后一位。因此当x=0时得到1,其余情况得到0。 int tmin(void) { return 1<<31; } 1<<31即(100…0)2(31个0)。其中1是符号位。即为负零,以表示最小的整数。 int fitsBits(int x, int n) { int shiftNumber=~n+33; return !(x^((x<
} if ((afterShift & 0x01ff)>0x0100) flag=1; else if ((afterShift & 0x03ff)==0x0300) flag=1; else flag=0; return sign + (afterShift>>9) + ((159-shiftLeft)<<23) + flag; } 本题没有理解,都是用的网上的代码。 unsigned float_twice(unsigned uf) { unsigned f=uf; if ((f & 0x7F800000) == 0){ f = ((f & 0x007FFFFF)<<1) | (0x80000000 & f); } else if ((f & 0x7F800000) != 0x7F800000){ f =f+0x00800000; } return f; } 第一个if语句判断非规格化的数。其中(f&0x007FFFFF)<<1作用为令符号位和阶码被屏蔽,令尾数左移。(0x80000000 & f)是将符号位恢复。 第二个else if语句判断即为规格化数。f=f+0x00800000即若是规格化数,对它的阶码加1。如果都不满足的话最后会返回uf原来的值。 实验结果及分析: 根据检测可知,编译通过,并且具体操作步数均低于上限。符合要求。
正在阅读:
张 栋:论死因裁判制度在我国的建构与前景01-25
托福考试内容的解答流程(精)08-11
学生个人垃圾分类主题活动总结优秀例文04-03
汽车怎样起步不熄火?05-26
hypermesh初学者常见问题汇总03-10
教育教学基本技能模拟考试题一01-06
四川省二级建造师《机电工程管理与实务》试卷A卷 附答案12-06
2014年秋季数据库课程设计计划 (1)06-11
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- datalab
- handout
- 报告
- 如何制定工作计划 时代光华的答案
- 行政管理学试卷(A)
- 标准化工地
- 2019年国旗下讲话主题 2019年9月2019日国旗下讲话稿92019事变 精品
- Holiday Inn IT外包服务项目
- 学 科 - - - 数 学 - - - - 图文
- 19春地大《建筑结构抗震设计原理》在线作业一
- 2011年《财经法规与会计职业道德》全真模拟试题
- 材料力学思考题 - 图文
- 综合题:一次函数 二次函数 反比例函数中考综合题复习
- 乡党委书记优秀人大代表个人事迹材料
- 2014-2015学年高一物理人教版必修一教案:3.1 重力 基本相互作用 Word版含解析
- 2014年银行从业资格考试《公司信贷》真题(第一部分)
- 2017全省行政执法资格模拟考试2
- 2013届湖北省襄阳五中、夷陵中学、钟祥一中高三11月联考数学(文)试题 -
- 华南师范大学网络教育学院2014秋《初级劳动经济学》作业及答案
- 河南科技大学《食品工艺学》模拟试卷6
- 护理个案--林进容
- 福建省泉州第一中学2014届九年级英语毕业考试试题 - 图文
- 关于大学生奖助学金的思考