Data Lab
Thank for watch
实验梗概:
解决比特难题,整数操作问题和浮点问题
比特难题:
名字 | 描述 | 评分 |
---|---|---|
bitAnd(x,y) | 使用|和~完成x&y | 1 |
getByte(x,n) | 从x得到第n字节的数 | 2 |
logicalShift(x,n) | 使用算数右移完成逻辑右移 | 3 |
bitCount(x) | x中有多少个1 | 4 |
bang(x) | 不用!实现!操作符 | 4 |
整数操作问题
名字 | 描述 | 评分 |
---|---|---|
tmin() | 返回最小补码 | 1 |
fitsBits(x,n) | x能用n bits表示吗 | 2 |
divpwr2(x,n) | 计算 x/(2^n) | 2 |
negate(x) | 不用负号完成取反 | 2 |
isPosition(x) | x大于0吗 | 3 |
isLessOrEqual(x,y) | x小于等于y吗 | 3 |
ilog2(x) | 计算floor(log2(x)) | 4 |
浮点问题
名字 | 描述 | 评分 |
---|---|---|
float_neg(uf) | 取反 | 2 |
float_i2f(x) | 计算(float)x | 4 |
float_twice(uf) | 计算x*2.0 | 4 |
实验指南
完成实验你只需要修改bits.c.配套有btest,dlc和fshow配件。
在本实验中:
不能使用循环,分支语句。只允许使用顺序语句。
只能使用 ! ˜ & ˆ | + << >>(甚至更少)
只能使用小于256的常数。
只能使用int或unsigned,不能使用float,不能类型转换
在每个函数的注释有更清楚的任务要求
工具介绍
btest
这个工具检查bits.c里函数的正确性。(每次修改完bits.c都要重新make)
./btest 检查你的所有答案是否正确
./btest -f bitAnd 检查bitAnd是否正确。
dlc
./dlc bits.c 检查你使用了非法操作符,或过多的