下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 51459-2024 医疗机构污水处理工程技术标准标准立项发展报告
- 2026中国制药企业生产产业市场发展趋势投资评估规划分析研究报告
- 2026能源节约行业技术供需现状及节能减排投资价值评估报告
- 2026汽车互联网行业市场深度调研及发展趋势与投资战略研究报告
- 2026中国消费电子行业产品升级趋势与市场消费行为研究报告
- 傻芬能力测试题及答案解析
- 2026食品加工机械行业市场需求与竞争现状分析及投资前景规划研究报告
- 2026中国养老产业行业市场现状竞争分析及产业发展规划分析研究报告
- 2026轻工业产品创新与市场需求分析考察评估发展规划分析研究报告
- 广西单招模拟试题全解与答案呈现
- 2025-2026学年小学一年级(下)期末数学试卷
- 云计算平台建设验收规范
- 2026年共产党党章知识竞赛试题库(附答案)
- 超声三基考试试题及答案
- 施工现场临时排水施工方案
- GB/T 47592-2026塑料胺类环氧固化剂伯、仲、叔胺基氮含量的测定
- 2026年云南省中考英语试卷(含答案及解析)
- 2025-2026学年浙江省金华市八年级下册期末教学质量评价卷数学试题 含答案
- 2026年军队考核笔押题宝典考试题库及参考答案详解(综合卷)
- 2026安徽师范大学工作人员招聘29人笔试备考题库及答案解析
- 防范钓鱼网站链接诈骗:从识别到防御的全面指南
评论
0/150
提交评论