In C complete each of the functions using only straightline code no loops or con
ID: 3881322 • Letter: I
Question
In C complete each of the functions using only straightline code no loops or conditionals and only using the legal operators listed for each function.
/*
* tmin - return minimum two's complement integer
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 4
* Rating: 10
*/
int tmin(void) {
return 2;
}
/*
* negate - return -x
* Example: negate(1) = -1.
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 5
* Rating: 8
*/
int negate(int x) {
return 2;
}
/*
* times31 - multiplies by 31
* Should exactly duplicate effect of C expression (x*31),
* including overflow behavior.
* Examples: times31(1) = 31
* times31(-1) = -31
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 6
* Rating: 6
*/
int times31(int x) {
return 2;
}
/*
* isLess - if x < y then return 1, else return 0
* Example: isLess(4,5) = 1.
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 24
* Rating: 2
*/
int isLess(int x, int y) {
return 2;
Explanation / Answer
int negate(int x)
{
x = ~x;
printf("%d",x);
return 2;
}
int isless(int x,int y)
{
if( y ^ ((x ^ y) & -(x << y)) == x)
return 1;
else
return 0;
}