数据表示编程作业教程.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据表示编程作业教程

数据表示编程作业 目录 1 简介 2 相关文件 3 结果提交 4 作业要求 5 问题描述 5.1位操作 5.2补码运算 5.3浮点数操作 6 检查你的代码 6.1 使用dlc检查函数实现代码是否符合作业要求中的编码规则 6.2 使用btest检查函数实现代码的功能正确性 7 建议与提示 附录 作业步骤简要介绍 1简介 本作业的目的是为更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。在作业中,你需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中你将加深对数据二进制编码表示的了解。 本作业为课外作业,占总评成绩15%。 2相关文件 作业所需要的代码和相关文件已放到linux系统home目录下的src-stu文件中,其中包含下列文件: README —— 有关作业细节的说明文件,请在开始作业前仔细阅读 bits.c —— 包含一组用于完成指定功能的函数的代码框架,需要你按要求补充完成其函数体代码并“作为作业结果提交”。函数的功能与实现要求详细说明在相应函数和文件首部的注释中(务必认真阅读和遵照说明完成作业)。 bits.h —— 头文件 btest.c —— 作业结果测试工具,用于检查作为作业结果的 bits.c中函数实现是否满足作业的功能正确性要求。 btest.h, decl.c, tests.c —— 生成btest程序的源文件 dlc —— 作业结果检查工具,用于判断作为作业结果的 bits.c中函数实现是否满足作业的语法规则要求。 Makefile —— 生成btest、fshow、ishow等工具的Make文件。 ishow.c —— 整型数据表示查看工具 fshow.c —— 浮点数据表示查看工具 3结果提交 请将完成函数体代码后的bits.c作为作业结果提交。 4作业要求 作业前请认真阅读本文档和bits.c中的代码及注释,然后根据要求相应完成bits.c中的各函数代码。 作业中实现的函数代码必须满足下述基本条件(更多具体要求见函数的注释): 除关于浮点数的函数实现外,只能使用顺序程序结构(不得使用循环或条件分支控制程序结构,例如if, do, while, for, switch等)。 仅能使用有限类型和数量的C语言算术和逻辑操作,例如如下的操作符,但注意每个题目可能有不同的可用操作符列表,详见具体函数说明。 ! ~ ^ | + 不得使用超过8位表示的常量(即其值必须位于[0,255]中)。 不得使用任何形式的强制类型转换。 不得使用除整型外的任何其它数据类型,如数组、结构、联合等。 不得定义和使用宏。 不得定义除已给定的框架函数外的其他函数,不得调用任何函数。 特定于浮点数操作函数的额外限制条件: 可以使用循环和条件控制; 可以使用整型和无符号整型常量及变量(取值不受[0,255]限制); 不使用任何浮点数据类型、操作及常量。 上述作业要求的主要目的是使得你必须从二进制位的角度考虑数据,进而更清楚地理解数据的二进制表示。 5问题描述 你需要完成bits.c中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。 5.1位操作 下表列出了bits.c中一组操作和测试位组的函数。其中,“级别”栏指出各函数的难度等级(对应于该函数的作业分值),“功能”栏给出函数应实现的输出(即功能),“约束条件”栏指出你的函数实现必须满足的编码规则(具体请查看bits.c中相应函数注释),“最多操作符数量”指出你的函数实现中允许使用的操作符(如|和~)的最大数量。你也可参考tests.c中对应的测试函数来了解所需实现的功能,但是注意这些测试函数并不满足目标函数必须遵循的编码约束条件,只能用做关于目标函数正确行为的参考。 题目列表 级别 函数名 功能 约束条件 最多操作符数量 1 bitAnd(x,y) x y 仅能使用|和~ 8 1 bitXor(x,y) x ^ y 仅能使用和~ 14 1 thirdBits() 返回一个32位整型字,使其自最低有效位LSB起每三个位组的最低位置1,其它位置0(即...001001001) 仅能使用!,~,,^,|,+,, 8 2 getByte(x,n) 从32位字x中提取第n字节(字节从LSB开始到MSB依次编号为0-3) 仅能使用!,~,,^,|,+,, 6 3 logicalShift(x,n) 使用逻辑移位操作将x右移n位(假设0 = n = 31) 仅能使用~,,^,|,+,, 20 4 bang(x) !x 仅能使用~,,^,|,+,, 12 3 condition

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档