教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

实验二 数据表示实验

来源:网络收集 时间:2026-09-07
导读: 深圳大学实验报告 课程名称:计算机系统(2) 实验项目名称:数据表示实验 学院: 专业: 指导教师:罗秋明 报告人:学号:班级: 实验时间:2017年3月31日 实验报告提交时间:2017年4月13日 教务处制 一、实验目标: 1. 了解各种数据类型在计算机中的表示方法

深圳大学实验报告

课程名称:计算机系统(2)

实验项目名称:数据表示实验 学院: 专业:

指导教师:罗秋明

报告人:学号:班级:

实验时间:2017年3月31日

实验报告提交时间:2017年4月13日

教务处制

一、实验目标:

1. 了解各种数据类型在计算机中的表示方法 2. 掌握C语言数据类型的位级表示及操作

二、实验环境:

1. 计算机(Intel CPU) 2. Ubuntu Linux操作系统

三、实验内容与步骤

1、根据bits.c中的要求补全以下的函数: int bitXor(int x, int y); 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);

深圳大学学生实验报告用纸

2、在Linux下测试以上函数是否正确,指令如下: *编译:./dlc bits.c *测试:make btest

./btest

四、实验结果

1.int bitXor(int x, int y);

由离散数学逻辑命题逻辑可得,异或如下:

2.int tmin(void);

最小值为0x8000 0000,由1左移31即可得到:

3. int isTmax(int x);

最大值为0x7fff ffff,加一会变为0x10000000,而此数加上本身后会变为0,本身加本身为0的数只有0和0x1000 0000,故而再将0xffffffff排除即可

深圳大学学生实验报告用纸

4.int allOddBits(int x);

只有所有奇数位为1的数(二进制),与0x5555 5555进行&运算才会得到0,故而需要得到0x5555 5555即可,将0x5分别左移4、8、16、24得到4个数,然后将这四个数和0x5相加即可得到0x5555 5555

5.int negate(int x);

取反加1即可

6.int isAsciiDigit(int x);

x需要>=’0’且<=’9’,将x与临界点作差,然后判断符号位的为0还是1即可

深圳大学学生实验报告用纸

7.int conditional(int x, int y, int z);

首先使用t=!x,当x为0时返回1,当x不为0时,返回0,根据题意得到( _ &y)|( _ &z),首先空1,当x不为0,即t=0时,需要t转换为0xffffffff(-1),当t=1时,需要将t转换为0x0(0),,将t-1即可,得到空1为“!x+~1+1”,同理空2为“~!x+1”

8.int isLessOrEqual(int x, int y);

直接用y-x可能会超出int的表示范围,故而:

A、在x与y同号的情况下转换为p=y-x>=0,然后p符号位(p>>31)&1为0则返回1,符号位1则返回0;

B、异号时,只要x>=0,就要返回0,否则返回1,由(x>>31)&1能达到该效果; C、 c=a+b可作为x,y同号异号的判断。

深圳大学学生实验报告用纸

实验二 数据表示实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/445164.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)