下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LAB1实验报告语法检查:正确性检查:1. bitAnd源代码:return(x|y);思路:可以直接运用摩尔定律,写出与的等价形式。2. getByte源代码:return(x(n3)&0xff;思路:向右移动3n位,再用B按位与,截取出所需要的字节3. logicalShift源代码:intlogic=(1n)n);思路:设置一个变量logic,并通过算数移位将其前n为设置成0,后面32-n位设置为1。利用这个变量按位与移位后的x即可。4. bitCount源代码:intbitCount(intx)intresult;inthalf_one=(0x55)|(0x558);intone=(h
2、alf_one)|(half_one16);inthalf_two=(0x33)|(0x338);inttwo=(half_two)|(half_two16);inthalf_three=(0x0f)|(0x0f8);intthree=(half_three)|(half_three16);intfour=(0xff)|(0xff16);intfive=(0xff)|(0xff1)&one);result=(result&two)+(result2)&two);result=(result+(result4)&three;result=(result+(result8)&four;result
3、=(result+(result16)&five;returnresult;思路:主要还是使用二分法,通过以为设置五个字符串:0101010101010101010101010101010100110011001100110011001100110011000011110000111100001111000011110000000011111111000000001111111100000000000000001111111111111111分别通过按位与统计1的个数,并将个数记录在下一个字符串1出现的位置。最后可以得到1的个数。5. bang源代码:return(x|(x+1)31)&1;思
4、路:X和-X的机器数按位与,当X不为0是,其符号位一定为00然后再利用移位得到其符号位即可。6. tmin源代码:return131;思路:即得到最小负数0x80000000。可以通过移位得到。7. fitsBit源代码:intshift=n+33;return!(xA(xshift);思路:shift=32-n。即先左移32-n位,在右移32-n位,即保留最后n位数。在与x异或,若两者相同表示x可被表示为一个n位整数,!0为1。8. divpwr2源代码:intsign=x31;intone=(1n;思路:首先取得符号位,然后设置one=2An-1,如果x是正数,则two为0,即不用力口,直
5、接移位如果x为负数,加上偏置量之后在移位。9. negate源代码:returnx+1;思路:即求负数,原数字按位取反再加一即可。10. isPositive源代码:return!(x31)|(!x);思路:这个看符号位就行了,通过移位把符号位提取出来。11. isLessOrEqual源代码:intsignx=x31;intsigny=y31;intsignSame=(x+(y)31)&(!(signxAsigny);intsignDiffer=signx&(!signy);returnsignDiffer|signSame;思路:首先获得两个符号位,然后分别就考虑负号位相同和不同的情况,当
6、负号位相同,则利用减法,获取差的符号位;如果符号位不同,且x为负,y为正,则也成立。综合负号相同和不同的情况,可以得到最终结果。12. ilog2源代码:intilog2(intx)intresult=0;result=(!(x16)(result+8)(result+4)(result+1);x(result+2)0x7f800000)result=uf;returnresult;思路:将该数字的最高位进行取反。然后分类讨论,比较最高位为零时,是否大于000000000000000000000。即阶为最大是,此时,为NaN所以这个时候返回参数就可以啦。14. float_i2f源代码:uns
7、ignedfloat_i2f(intx)unsignedshiftleft=0;unsignedaftershift,tmp,flag;unsignedabsx=x;unsignedsign=0;if(0=x)return0;if(x0)sign=0x;absx=-x;aftershift=absx;while(1)tmp=aftershift;aftershift0x0100)flag=1;elseif(aftershift&0x03ff)=0x0300)flag=1;elseflag=0;returnsign+(aftershift9)+(159-shiftleft)23)+flag;思路:Int型整数在转化为float型数的时候需要注意的是负数的表示,在int型中负数使用补码的形式表示,而float直接表示,所以先要对负数进行转化。然后进行循环,每移位一次阶码记录一次。最后把得到的三部分综合起来即可。15. float_twice源代码:unsignedfloat_twice(unsigneduf)unsignedf=uf;if(f&0x7f800000)=0)f=(f&0x007fffff)1)|(0x&f);elseif(f&0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSPIA 005-2021公共安全视频图像分析多算法应用技术要求
- T/YYHG 0006-2023注射剂配液分配自控系统实施规范
- T/HAEPCI 45-2022农田土壤重金属污染修复与管控方案编制规范
- T/CIE 207-2024Linux操作系统内核接口调用参考规范
- T/CAOE 47-2023大洋多金属结核资源量估算技术指南
- T/CSAE 465-2025乘用车智能底盘矢量控制及舒适加减速控制道路测试方法
- 2025-2026学年黑龙江省鸡西市初中数学九年级期末上册模考能力提升卷详细参考解析
- PHP 初级面试题及详细答案(真实企业版)
- 2026年教育系统后备干部笔试试题及答案
- PET-CT物理师专业考核试题及详细答案
- 2026年建筑安全员C证考试真题及答案
- 2026年纪检监察案件查办政策考试题及答案
- 2026年江苏省粮食集团有限责任公司人员招聘笔试备考题库及详细答案解析
- 2026年普法考试题目(+答案解析)
- 2026年秋新版道德与法治(道法)六年级上册全册分课时作业附答案
- 2025年县属国有企业招聘考试笔试试题(含答案)
- 可压缩流体管道阻力降计算表
- 分布式光伏发电系统建设规范
- 企业商业秘密保护技术应用调研报告
- 物业服务满意度调研问卷设计
- 《物业设备设施管理(第2版)》-第二章
评论
0/150
提交评论