From c57efe1570449fb0b08f5e91f3fe5e8c6006c2b5 Mon Sep 17 00:00:00 2001 From: Wu Mianzhi <10215501411@stu.ecnu.edu.cn> Date: Fri, 16 Sep 2022 21:33:24 +0800 Subject: [PATCH] finish quiz 6 --- lab2/datalab-handout/bits.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lab2/datalab-handout/bits.c b/lab2/datalab-handout/bits.c index c9bb625..42b53b7 100644 --- a/lab2/datalab-handout/bits.c +++ b/lab2/datalab-handout/bits.c @@ -236,7 +236,11 @@ int isAsciiDigit(int x) { * Rating: 3 */ int conditional(int x, int y, int z) { - return 2; + int signx = (!x << 31) >> 31; // if x == 0 signx 111, if x != 0 signx 00000 + int ywhenx = (~signx) & y; // if signx 111 is 0 + int zwhenx = (signx) & z; + int result = ywhenx | zwhenx; + return result; } /* * isLessOrEqual - if x <= y then return 1, else return 0