《2022年实验二数据表示实验 .pdf》由会员分享,可在线阅读,更多相关《2022年实验二数据表示实验 .pdf(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、深圳大学实验报告课程名称:计算机系统(2)实验项目名称:数据表示实验学院:专业:指导教师:罗秋明报告人:学号:班级:实验时间:2017年 3 月 31 日实验报告提交时间:2017 年 4 月 13日教务处制名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 13 页 -深圳大学学生实验报告用纸一、实验目标:1.了解各种数据类型在计算机中的表示方法2.掌握 C 语言数据类型的位级表示及操作二、实验环境:1.计算机(Intel CPU)2.Ubuntu Linux 操作系统三、实验内容与步骤1、根据 bits.c 中的要求补全以下的函数:int bitXor(int x,int y);
2、int tmin(void);int isTmax(int x);nt allOddBits(int x);int negate(int x);int isAsciiDigit(int x);int conditional(int x,int y,int z);int isLessOrEqual(int x,int y);int logicalNeg(int x);int howManyBits(int x);unsigned float_twice(unsigned uf);unsigned float_i2f(int x);int float_f2i(unsigned uf);名师资料总结
3、-精品资料欢迎下载-名师精心整理-第 2 页,共 13 页 -深圳大学学生实验报告用纸2、在 Linux 下测试以上函数是否正确,指令如下:*编译:./dlc bits.c*测试:make btest./btest 四、实验结果1.int bitXor(int x,int y);由离散数学逻辑命题逻辑可得,异或如下:2.int tmin(void);最小值为 0 x8000 0000,由 1 左移 31即可得到:3.int isTmax(int x);最大值为 0 x7fff ffff,加一会变为 0 x10000000,而此数加上本身后会变为0,本身加本身为 0 的数只有 0 和 0 x10
4、00 0000,故而再将 0 xffffffff 排除即可名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 13 页 -深圳大学学生实验报告用纸4.int allOddBits(int x);只有所有奇数位为1 的数(二进制),与 0 x5555 5555进行&运算才会得到 0,故而需要得到 0 x5555 5555 即可,将 0 x5 分别左移 4、8、16、24得到 4 个数,然后将这四个数和0 x5 相加即可得到 0 x5555 5555 5.int negate(int x);取反加 1即可6.int isAsciiDigit(int x);x 需要=0且=0,然后 p 符
5、号位(p31)&1 为 0 则返回 1,符号位 1 则返回 0;B、异号时,只要 x=0,就要返回 0,否则返回 1,由(x31)&1 能达到该效果;C、c=a+b 可作为 x,y 同号异号的判断。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 13 页 -深圳大学学生实验报告用纸9.int logicalNeg(int x);令 y=x+1,考虑 x 与 y 的符号位:A.当 x 为 0 时,两者符号位都为0;B.当 x=0 x8000 0000 时,两者符号位都为1;C.否则,两者符号位为01 或 10;D.根据离散数学的真值表得出(x)&(y).10.int howMany
6、Bits(int x);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 13 页 -深圳大学学生实验报告用纸11.unsigned float_twice(unsigned uf);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 13 页 -深圳大学学生实验报告用纸12.unsigned float_i2f(int x);A.用(二进制)科学计数法表示int 型数时,尾数位数 23 时,找到位数最末一位记作xi,然后对尾数的舍去分3 种情况考虑,初始化 c=0:a)当 xi-1=1 且 xi-2、xi-3,x0 都为 0(即要偶端舍入情况),且 xi=1,令 c=1
7、(此处 frac若是全为1,则会导致frac+c 超出范围,这是bug,当还是通过了);b)当 xi-1=1 且 xi-2、xi-3,x0 不都为 0,令 c=1(与 a 存在同样的bug);c)除 a、b 的情况,c=0;C.其他特殊情况再考虑一下就好了;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 13 页 -深圳大学学生实验报告用纸13.int float_f2i(unsigned uf);exp 为 0,x=(-1)s*0.frac*2(-126);否则 x=(-1)s*1.frac*2(exp-127)分情况考虑:A.根据 float 转为 int 是向 0 舍入的情
8、况,当exp=0 或者 exp127(由 exp-12723)-127)=0,根据 x=(-1)s*1.frac*(exp-127),a)exp_sign=0,x=1.x22x21 x0-x=1;b)exp_sign=1,x=1x22.x21 x0-x=1x22;c)exp_sign=2,x=1x22x21.x20 x0-x=1x22x21;d)exp_sign=23,x=1x22x21x20 x0-x=1x22x21x0 e)exp_sign=30,x=1x22x21x20,x0-x=1x22x21,x00,0(共 31 位)f)exp_sign=32,x=1x22x21x20,x0-x=1
9、x22x21,x00,0(共 32 位),此时,因为 int为有符号,只有0 x0000 00000 能被表示出来,其他都是NAN;C.当 exp_sign=(exp23)-127)=33,NAN 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 13 页 -深圳大学学生实验报告用纸名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 13 页 -深圳大学学生实验报告用纸最终截图:名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 13 页 -深圳大学学生实验报告用纸五、实验总结与体会此次实验主要考查的是对数据的处理,对此需要掌握数据在机器中的表示,运用合理的位运算来实现相应的功能。通过此次实验,我更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。尤其是加深对数据二进制编码表示的了解。通过使用有限类型和数量的运算操作实现一组给定功能的函数来提高了我对数据表示方面的C 语言编程能力。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 13 页 -注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。2、教师批改学生实验报告时间应在学生提交实验报告时间后10 日内。指导教师批阅意见:成绩评定:指导教师签字:罗秋明2017 年 4 月 10 日备注:名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 13 页 -
限制150内