some minor changes for datalab01/bits.c
This commit is contained in:
@@ -197,7 +197,7 @@ int bitXor(int x, int y) {
|
|||||||
* Rating: 1
|
* Rating: 1
|
||||||
*/
|
*/
|
||||||
volatile int isTmin(int x) {
|
volatile int isTmin(int x) {
|
||||||
return (!(!x)) & (!(((~(x) + 1) ^ x)));
|
return !!x & (!(((~(x) + 1) ^ x)));
|
||||||
}
|
}
|
||||||
//2
|
//2
|
||||||
/*
|
/*
|
||||||
@@ -280,7 +280,7 @@ unsigned floatScale2(unsigned uf) {
|
|||||||
* Rating: 4
|
* Rating: 4
|
||||||
*/
|
*/
|
||||||
int floatFloat2Int(unsigned uf) {
|
int floatFloat2Int(unsigned uf) {
|
||||||
unsigned exp, sign, frac, m;
|
unsigned exp, sign, frac, mantissa;
|
||||||
int value, shift;
|
int value, shift;
|
||||||
exp = (uf >> 23) & ((1 << 8) - 1);
|
exp = (uf >> 23) & ((1 << 8) - 1);
|
||||||
sign = (uf >> 31) & 1;
|
sign = (uf >> 31) & 1;
|
||||||
@@ -295,12 +295,12 @@ int floatFloat2Int(unsigned uf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
shift = exp - 150;
|
shift = exp - 150;
|
||||||
m = ((1 << 23) | frac);
|
mantissa = ((1 << 23) | frac);
|
||||||
|
|
||||||
if (shift > 0) {
|
if (shift > 0) {
|
||||||
value = m << shift;
|
value = mantissa << shift;
|
||||||
} else {
|
} else {
|
||||||
value = m >> -shift;
|
value = mantissa >> -shift;
|
||||||
}
|
}
|
||||||
if (sign) {
|
if (sign) {
|
||||||
return -value;
|
return -value;
|
||||||
|
|||||||
Reference in New Issue
Block a user