From fe36d7f134c2cba14b94cc81bc5dd0c4c484a5a2 Mon Sep 17 00:00:00 2001 From: Wu Mianzhi <10215501411@stu.ecnu.edu.cn> Date: Sat, 17 Sep 2022 14:06:15 +0800 Subject: [PATCH] fix quiz8 --- lab2/datalab-handout/bits.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lab2/datalab-handout/bits.c b/lab2/datalab-handout/bits.c index 5f11cce..26d53a5 100644 --- a/lab2/datalab-handout/bits.c +++ b/lab2/datalab-handout/bits.c @@ -259,7 +259,7 @@ int isLessOrEqual(int x, int y) { int absy = y & sign1; int diff = absy + (~absx) + 1; int signdiff = diff >> 31; - int res = !(!isnegpos) | (!isnegpos & !signdiff & !isposneg); + int res = (!(!isnegpos)) | (!isnegpos & !signdiff & !isposneg); return res; } //4 @@ -275,10 +275,9 @@ int logicalNeg(int x) { int sign = (x ^ (~x + 1)) >> 31; int one = 1; int singlesign = sign & one; - int intmin = 1 << 31; int isnotmin = (~x) >> 31; // if x is 00000, get 1111 and if x is 1000 get 00000 int notmin = isnotmin & one; - int res = singlesign ^ one & notmin; + int res = (singlesign ^ one) & notmin; return res; } /* howManyBits - return the minimum number of bits required to represent x in