CSAPP-Lab01 Data Lab 详细解析

本文详细解析了CSAPP数据实验,包括int类型问题(如bitXor、tmin、isTmax等)和float类型问题(如floatScale2、floatFloat2Int等),介绍了如何使用有限的操作来实现这些数据操作。文章通过实例和逻辑分析,展示了如何运用位运算和逻辑运算解决这些问题。
摘要由CSDN通过智能技术生成

总览

题目列表

Problem-int

bitXor

  • bitXor - x^y using only ~ and &
  • Example: bitXor(4, 5) = 1
  • Legal ops: ~ &
  • Max ops: 14

要求只用“非”和“与”来表示“异或”。首先想到“异或的非=同或”:
x ⊕ y = x ‾ y + x y ‾ = x ‾ y ‾ ⋅ y ‾ x ‾ ‾ = ( x + y ‾ ) ⋅ ( x ‾ + y ) ‾ = x y + x ‾ y ‾ ‾ \begin{aligned}x\oplus y&=\overline{x}y+x\overline{y}\newline &=\overline{\overline{\overline{x}y}\cdot\overline{\overline{y}x}}\newline &=\overline{(x+\overline{y})\cdot(\overline{x}+y)}\newline &=\overline{xy+\overline{x}\overline{y}} \end{aligned} xy=xy+xy=xyyx=(x+y)(x+y)=xy+xy
将里面的“或”变成“和”,只需利用德摩根定律:
x y + x ‾ y ‾ ‾ = x ⋅ y ‾ ⋅ x ‾ ⋅ y ‾ ‾ \begin{aligned} \overline{xy+\overline{x}\overline{y}}=\overline{x\cdot y}\cdot\overline{\overline{x}\cdot\overline{y}} \end{aligned} xy+xy=xyxy

int bitXor(int x, int y) {
   
	return ~(x&y)&(~x&~y);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deconx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值