深入理解:计算机作业1:datalab-handout

计算机系统_数据表示实验 (1)实验环境        Linux操作系统(2)实验内容    ①根据bits.c中的要求补全以下的函数:        int bitXor(int x, int y);        int tmin(void);        int isTmax(int x);        nt allOddBits(int x);        int negate(int x);       ... 阅读详情

这个作业还是有难度的,每一个小题相当于一个LeetCode题目,大部分自己是没想出来,除了部分上课讲过的。

第一小题:取反,与操作,来实现异或功能
  • bitXor - 仅允许使用~和&来实现异或
  • 例子: bitXor(4, 5) = 1
  • 允许的操作符: ~ &
  • 最多操作符数目: 14
  • 分值: 1

这个需要使用一个数电里面的基本知识,异或等于取反的组合。
在这里插入图片描述
知乎:理解异或

int logicalNeg(int x) {
  return ((x>>31)^1)&(((x^(~x+1))>>31)^0xffffffff)&1;
}

这里如果x是一个负数,那么((x>>31)^1就是false,就会短路,不在往后面执行,返回0。
如果x是一个正数,那么((x>>31)^1就是一个true,所以就会往后面执行。~x+1这个是求补码的操作,对于正数来讲,补码就是自己。x^ x等到的就是0,0^ 0xfffffff就是0xffffffff,最后&1就会等到1,放回true;

参考链接:
https://zhuanlan.zhihu.com/p/59534845?utm_source=qq
http://hh-yzm.com/index.php/archives/6/#
https://blog.youkuaiyun.com/weixin_42062229/article/details/93496909
https://blog.youkuaiyun.com/qq_40889820/article/details/88831962
https://blog.youkuaiyun.com/qq_40851744/article/details/103163205
https://blog.youkuaiyun.com/lzjsqn/article/details/61431048
https://blog.youkuaiyun.com/qq_36840162/article/details/78123072
https://blog.youkuaiyun.com/blackturtle/article/details/70177180

datalab-handout实验 这是计算机系统2的一个实验作业,花了半天多做完,感觉有几道题挺有趣的,也顺便做一下笔记,方便以后复习或工作时可以查看。 运行环境:ubuntu 16.04。 为了与实验语言一致,我用英文注释了。 /* * CS:APP Data Lab * * <Please put your name and userid here> * * bits.c - Source file with 阅读详情

相关推荐

linux按位运算datalab-handout

进入bits.c ,根据bits.c中的具体要求补全以下13个函数: •intbitXor(intx, int y); •inttmin(void); •intisTmax(intx); •ntallOddBits(intx); •intnegate(int x); •intisAsciiDigit(intx); •intconditional(int x, inty, int z)

iamubbTing的博客 6889

按位取反、按位与实现异或

**/}

sha_mo_li的博客 284

CSAPP Data Lab 实验指南:位运算与浮点数表示的底层实践

位运算(bitwise operation)是计算机底层编程的核心技术之一,它直接操作数据的二进制位,是理解计算机数据表示和实现高效算法的基石。其原理基于逻辑门电路,通过AND、OR、NOT、XOR以及移位等基本操作,实现对整数的精确控制。掌握位运算对于性能优化、系统编程和嵌入式开发具有重要价值,尤其在处理硬件接口、数据压缩和加密算法等场景中不可或缺。本文聚焦于CMU CSAPP课程经典的Data Lab实验,该实验要求仅使用有限的位运算符完成特定功能,是深入理解补码(Two's Complement)和I

weixin_30617737的博客 361

使用C语言用与(&)和非(~)实现异或(详解)

可以看到我们对4和5的不同位(第0位)进行的了标记,看1.和c.的结果我们发现前三位正好每一位都不同,但是第0位相同,因为我们第一部分先进行的&操作第二部分我们先 ~ 在&,因为&操作**不影响**二进制的**不同位的结果**,所以1.和a.的结果只有前三位不相同,这样我们在1.和c.的结果上进行 ~ 操作这样不同位我们就都变为**1**了!而前三位还是不相同!总的来讲我们要关心哪些位不相同,将都**不相同的位置操作为1**,**相同的位置改为不相同**,这样&之后得到的结果就是a和b的按位异或。

qq_73971557的博客 4220

卡内基梅陇 计算机系统 datalab 题目与解答

卡内基梅陇大学计算机核心课程15213 第一次作业bitlab的源文件,包含作业题目和答案,是我个人做的,总步数13题共160左右。只能保证正确性,但答案不唯一,且步数越少越好

datalab答案c文件

cmu 15213 14s 课程lab datalab 满分答案 150运算符

c/c++的&、异或、~、!等运算

位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。 C++ 书上说 (x&y)+((x^y)>>1)的功能是取两个数的平均值,怎么解释? (x&y)+((x^y)>>1),把x和y里对应的每一位(指二进制位)都分成三类,每一类分别计算平均值,最后汇总。其中,一类是x,y对应位都是1,用x&y计算其平均值

xueruifan的专栏 1844

proxylab-handout.tar

CSAPP最后一个实验我自己写的源码,使用了LRU的缓存机制

高级操作符——位操作符讲解(移位操作符~ 按位与'&'操作符~ 按位或'|'操作符~ 按位异或'^'操作符)

首先介绍操作符与位操作符的区别,位操作是程序设计中对位模式按位或二进制数的一元和二元操作。 在许多的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。 有时候合理利用一个位操作符,可以帮助我们少些十几行代码。 移位操作符。 左移位操作符。 << 将二进制序列左边抛弃,右边补0; 如: int i=1; 0000000000000000000000000000000...

Shangxingya的博客 3437

datalab handout

cmu datalab handout,ics课程的原版提交文件

CSAPP的datalab-位运算

CSAPP的实验datalab-handout,有详细的代码解释

计算机系统实验LAB2实验代码及详细实验报告:datalab-handout.tar:填写bits.c文件中尚未完成的各个函数的内容

题目来源:深入理解计算机系统实验二 实验题目:LAB2-datalab 实验目的:通过此次实验,进一步熟悉整型及浮点数的位表达形式,实现常用二进制运算的常用方法。 ReadmeFirst: 本次文件夹包括本次课程实验LAB2的内容,内含2个文件:datalab-handout.tar以及ReadmeFirst.txt。 本次实验内容经过在ubuntu12.04环境中测试,均可运行通...

乔卿的博客 1万+

华为私有云HCS 8.1.1实战:从镜像制作到云主机发放全流程指南

本文详细解析了华为私有云HCS 8.1.1从镜像制作到云主机发放的全流程实战指南。内容涵盖制作标准化QCOW2镜像、配置云主机规格与主机组、规划外部网络,以及在运营面为租户初始化资源、配置审批流与产品目录。最后,通过用户视角演示了从创建VPC网络到申请、审批并最终绑定EIP访问云主机的完整操作步骤,为运维人员和架构师提供了一套清晰、可落地的HCS部署与管理实践方案。

weixin_29305313的博客 1124

【CSAPP】【答案/解析】《深入理解计算机系统》实验一/datalab-handout实验

【CSAPP】【答案/解析】《深入理解计算机系统》实验一/datalab-handout实验

weixin_72899100的博客 2600

python 抖音采集_python爬取抖音视频的实例详解

import requestsimport jsonimport reimport osfrom pprint import pprint as ppimport queueclass DouYin:header = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*...

weixin_35795675的博客 1864

《科研伦理与学术规范》期末考试答案2023

26单选(2 分)某学术杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价值, 他便一边压下这个稿子,一边将稿子的纲要传给自己门下的硕士生, 指导他们使用这个题目独立写出一篇论文,并帮助他们发表在其他期 刊上。D.要善待实验动物,是指在饲养管理和使用实验动物过程中,要采取有效措施,使实验动物免遭不必要的伤害、饥渴、不适、惊恐、折磨、疾病和疼痛,保证动物能够实现自然行为,受到良好的管理与照料,为其提供清洁、舒适的生活环境。张某在压力之下不得不屈从。

Glenseeds的博客 4万+

深入理解计算机系统(CSAPP)实验二 datalab-handout

实验的目的是 填写 bits.c里面的函数,使其按照规定的要求(比如只能使用有限且规定的操作符和数据类型,不能使用控制语句等等)实现函数的功能。 同时 dlc文件是用来检测 bits.c 里面的函数是否 是按照要求编写的,有没有使用非法的数据类型等。 使用方法:./dlc bits.c 检测成功后,使用 btest 测试 每一个函数功能方面是否正确无误。使用方法:./btest,如...

aocang4831的博客 1424

基于Matlab与Bladed联合仿真的交互软件设计

基于Matlab与Bladed的交互软件设计

weixin_45014222的博客 815

CSAPP DataLab实验全面解析(包含代码和具体分析)

该实验是《深入理解计算机系统》课程的核心实践环节,要求通过位级操作实现13个函数,深入理解整数和浮点数的二进制表示。

小李独爱秋的博客 2834

保姆级教程:用BIGEMAP和Global Mapper搞定5米精度DEM高程数据下载与处理

本文提供了一份详细的5米精度DEM高程数据处理教程,涵盖从BIGEMAP下载到Global Mapper处理的完整流程。通过实战案例和避坑指南,帮助用户掌握高效下载DEM数据、优化等高线生成及坐标系转换的关键技巧,适用于GIS新手和专业人士。

weixin_34169322的博客 387

计算机视觉:暗通道去雾算法的原理及python实现

在绝大多数非天空的局部区域中,某些像素总会至少有一个颜色通道的值很低。对于一幅图像J(x),其暗通道的数学定义表示如下:其中,Ω(x)表示以x为中心的局部区域,上标c表示RGB三个通道。该公式的意义用代码表达也很简单,首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定。

weixin_51998427的博客 1万+

[深入理解计算机系统]lab作业地址

http://csapp.cs.cmu.edu/3e/labs.html http://www.hh-yzm.com/ https://www.cnblogs.com/HacTF/p/8029197.html https://github.com/Ethan-Yan27/CSAPP-Labs 1. datalab https://blog.youkuaiyun.com/tzh476/ar...

Lord_sh的博客 926

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2181

CSAPP Data Lab环境搭建与位运算实战:从虚拟机配置到函数实现

计算机系统基础课程中,位级运算与数据表示是理解计算机底层工作原理的核心。通过位操作符(如与、或、非、异或、移位)直接操作二进制数据,可以深入掌握整数补码、浮点数IEEE 754标准等关键概念。这种底层技术能力对于优化算法、理解硬件交互以及进行系统级编程具有重要价值,常见于编译器开发、嵌入式系统和性能敏感型应用场景。本文聚焦于CSAPP Data Lab实验,详细讲解如何在Linux虚拟机中搭建实验环境,并逐步实现位运算函数,其中涉及**虚拟机配置**与**位操作**等关键热词,帮助读者在标准化环境中完成从环

weixin_33747129的博客 430

【ROS2】RViz2加载URDF模型文件

1)运行RViz2rviz22)添加组件:RobotModel3)选择通过文件添加4)选择URDF文件,此时会报错,需要修改Fixed Frame为map即可

郭老二 1450

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

linux中异或符号,C的|、||、&、&&、异或、~

位运算位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。其中,按位取反运算符是单目运算符,其余均为双目运算符。位运算符的优先级从高到低,依次为~、&、^、|,其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方...

weixin_29449593的博客 1929

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 光学:数值孔径
下一篇: pytorch学习:搭建自己的数据集
dlvector
博客等级 码龄10年 85粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值