Do some datalab

This commit is contained in:
cyp0633 2022-03-23 23:16:05 +08:00
parent 1dad907eed
commit 8360bdc1fe
Signed by: cyp0633
GPG Key ID: E1BC508A994A5138
5 changed files with 59 additions and 3 deletions

View File

@ -284,7 +284,7 @@ int isPositive(int x)
*/
int isLessOrEqual(int x, int y)
{
int val = ((x + ~y) >> 31)&1;
int val = ((x + ~y) >> 31) & 1;
x = x >> 31;
y = y >> 31;
return ((x & 1) | !y) & (((x & 1) & !y) | (val));
@ -368,7 +368,63 @@ unsigned float_i2f(int x)
* Max ops: 30
* Rating: 4
*/
// unsigned float_twice(unsigned uf)
// {
// // INF and NaN judge
// int expMask, exp, sign, signMask, frac, fracMask, uf_nosign;
// expMask = 0x7f800000; // get exponent bits
// exp = (uf & expMask);
// if (exp == expMask)
// {
// return uf;
// }
// // Special numbers
// signMask = 0x80000000; // get sign bit
// sign = (uf & signMask) >> 31;
// fracMask = 0x007fffff; // get fraction bits
// frac = uf & fracMask;
// if (sign == 0 && frac == 0) // Zero, just return 0
// {
// return 0;
// }
// // Denormalizd numbers
// uf_nosign = uf & 0x7fffffff; // remove sign bit
// if ((uf_nosign >> 23) == 0)
// {
// uf_nosign = uf_nosign << 1 | sign;
// return uf_nosign;
// }
// // Normalized numbers
// if (uf_nosign >> 23 == 0xff) //
// {
// return uf;
// }
// if ((exp >> 23) + 1 == 0xff)
// {
// return sign | 0x7f800000;
// }
// return sign | ((exp >> 23) + 1) << 23 | frac << 1;
// }
unsigned float_twice(unsigned uf)
{
return 2;
}
int uf_nosign;
int sign = uf & 0x80000000; // sign bit
int exp = uf & 0x7f800000; // exponent bits
int fraction = uf & 0x7fffff; // fraction bits
uf_nosign = uf & 0x7fffffff; // remove sign
if ((uf_nosign >> 23) == 0x0)
{
uf_nosign = uf_nosign << 1 | sign;
return uf_nosign;
}
if ((uf_nosign >> 23) == 0xff)
{
return uf;
}
if ((exp >> 23) + 1 == 0xff)
{
return sign | 0x7f800000;
}
return sign | (((exp >> 23) + 1) << 23) | fraction;
}

BIN
LAB2-datalab/datalab-handout/btest Normal file → Executable file

Binary file not shown.

0
LAB2-datalab/datalab-handout/dlc Normal file → Executable file
View File

0
LAB2-datalab/datalab-handout/fshow Normal file → Executable file
View File

0
LAB2-datalab/datalab-handout/ishow Normal file → Executable file
View File