2024Spring> HNU-计算机系统-实验2-datalab-导引

前言

datalab考验对于位运算以及浮点数存储的理解,如果真的肯花时间去搞懂,对计算机系统存储的理解真的能上一个台阶。与课程考试关联性上来说不是很大,但对于IEEE的浮点数表示一定要熟练掌握。

导引

①实验工具包

要完成的是bits.c中的15个函数。

打开README可以查看实验提供的工具包中各部分是干什么作用的,摘录如下。

  • bits.c- ★完成这个文件中的15个函数
  • bits.h- 头文件
  • btest.c- 主btest程序(用于测试结果)
  • btest.h,decl.c,tests.c,tests-header.c- 用于生成btest
  • fshow.c-用于检查浮点表示的实用工具
  • ishow.c-用于检查整数表示的实用工具
  • dlc -编译器

②实验完成流程

重复以下三个步骤直至完成15个函数并且结果都正确,实验结束。

  • 补全bits.c中的某一个函数
  • 【编译检验】使用./dlc bits.c 测试是否通过编译(即是否合法),若没有问题则没有返回
  • 【结果检验】使用make clean && make btest && ./btest 测试结果是否正确,会输出错误信息和正确信息

注:每次改动bits.c后均需重新make clean && make btest,这里的&& 可以直接敲上去,命令行会默认逐个执行&&连接的语句,或者自行拆分逐个敲语句也可以。

【可选】使用./dlc -e bits.c打印每个函数使用的运算符数,操作数也需要满足限制。

【可选】小工具ishow和fshow,可以用来看一个数在int类型和float类型下有无符号形式的值。

    unix> ./ishow 0x27Hex = 0x00000027,	Signed = 39,	Unsigned = 39unix> ./ishow 27Hex = 0x0000001b,	Signed = 27,	Unsigned = 27unix> ./fshow 0x15213243Floating point value 3.255334057e-26Bit Representation 0x15213243, sign = 0, exponent = 0x2a, fraction = 0x213243Normalized.  +1.2593463659 X 2^(-85)linux> ./fshow 15213243Floating point value 2.131829405e-38Bit Representation 0x00e822bb, sign = 0, exponent = 0x01, fraction = 0x6822bbNormalized.  +1.8135598898 X 2^(-126)

最终可用./driver.pl来进行总体验证,得出最终分数。

③举例

1 bitAnd

/** bitAnd - x&y using only ~ and |*   Example: bitAnd(6, 5) = 4*   Legal ops: ~ |*   Max ops: 8*   Rating: 1*/

bits.c函数上方的注释中标注了完成该函数的要求以及函数功能描述。

这个函数要求使用按位或按位取反实现按位与,最多使用的符号数目是2个。

思路:使用德摩根定律将“按位与”操作转换为“按位取反”和“按位或”操作。

因此我们可以这样完成这个函数。

int bitAnd(int x, int y)
{return ~(~x | ~y);
}

注意:1-12依据各函数要求;13,14,15允许使用if,while等语句进行编写。

④期望

希望你能:

  • 独立完成实验,思路清晰
  • 进行经验总结,探究感悟
  • 熟练掌握IEEE浮点数表示
  • 真的从实验中收获知识与快乐

不要过于纠结于验收形式(验收分数差异真的不大)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600535.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【智能算法】混合蛙跳算法(SFLA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2003年,MM Eusuff等人受到青蛙觅食行为启发,提出了混合蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)。 2.算法原理 2.1算法思想 SF…

《神经网络入门》神经网络的思想 (一)

文章目录 生物神经元的结构如何用数学建模神经元的工作模式神经网络的结构 我们知道神经网络是一个模拟人脑的数学建模,首先我们来了解一下生物神经元是怎么工作的。 人的大脑是由非常多神经元相互连接形成的网络构成的。一个神经元,可以从其他神经元接…

第45期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

萨科微半导体

萨科微半导体的产品包括二极管三极管、功率器件、电源管理芯片等集成电路三大系列,可以平替换英飞凌、安森美、意法半导体、富士、三菱、科锐cree等品牌的产品。在宋仕强总经理的带领下,萨科微半导体(www.slkoric.com)将加速实现“…

水泥5G智能制造工厂数字孪生可视化平台,推进水泥行业数字化转型

水泥5G智能制造工厂数字孪生可视化平台,推进水泥行业数字化转型。水泥5G智能制造工厂数字孪生可视化平台,是水泥行业数字化转型的关键推手。数字孪生平台运用先进的信息技术和数字化手段,实现水泥生产过程的数字化模拟、可视化监控和智能化管…

全自动ai生成视频MoneyPrinterTurbo源码 在线ai生成视频源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 现在短视频这么火爆,流量就是金钱。 如果能全自动的生成短视频,是不是很容易带来流量,赚到马内。 MoneyPrinter 这个开源项目就可以自动生成短视…

数据库引论:3、中级SQL

3.中级SQL 一些更复杂的查询表达 3.1 连接表达式 拼接多张表的几种方式 3.1.1 自然连接 natural join,自动连接在所有共同属性上相同的元组 join… using( A 1 , A 2 , ⋯ A_1,A_2,\cdots A1​,A2​,⋯):使用括号里的属性进行自然连接,除了这些属性…

mfc140u.dll丢失的解决方法,解决mfc140u.dll丢失的弹窗问题

在使用电脑的时候是不是遇到过mfc140u.dll文件丢失的错误弹窗的情况,出现这样的问题时什么情况,有什么办法解决,今天这篇文章将带着大家去了解mfc140u.dll丢失的解决办法。帮助大家快速有效的解决mfc140u.dll文件。 一.解决mfc140u.dll丢失的…

visual studio 2017开发QT框架程序

1. 配置开发环境 首先创建项目 进入到项目后,右键点击项目点击属性,配置如下:

dockerhub右键快速搜索脚本

Chrome 浏览器扩展的后台脚本,用于创建右键菜单项,并根据用户的操作在新的标签页中打开 Docker Hub 网站或者进行搜索。 // 创建右键菜单项,用于打开 Docker Hub 网站 chrome.contextMenus.create({id: search-home, // 菜单项的唯一标识符t…

代码随想录算法训练营第48天|198.打家劫舍|213.打家劫舍II| 337.打家劫舍III

代码随想录算法训练营第48天|198.打家劫舍|213.打家劫舍II| 337.打家劫舍III 今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。 198.打家劫舍 视频讲解:https://www.bilibili.com/video/BV1Te411N7SX https://programmercarl.c…

【记录】LangChain|llama 2速通版

官方教程非常长,我看了很认可,但是看完了之后呢就需要一些整理得当的笔记让我自己能更快地找到需求。所以有了这篇文章。【写给自己看的,里面半句废话的解释都没有,如果看不懂的话直接看官方教程再看我的】 我是不打算一开始就用…