ソースを参照

finish quiz8

master
吴冕志 2年前
コミット
1a32e3302f
1個のファイルの変更9行の追加2行の削除
  1. +9
    -2
      lab2/datalab-handout/bits.c

+ 9
- 2
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
@ -272,7 +272,14 @@ int isLessOrEqual(int x, int y) {
* Rating: 4
*/
int logicalNeg(int x) {
return 2;
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;
return res;
}
/* howManyBits - return the minimum number of bits required to represent x in
* two's complement

読み込み中…
キャンセル
保存