2.79 Mul3div4
★★
#include <stdio.h>
#include <assert.h>
#include <limits.h>
int mul3div4(int x) {
x = (x << 1) + x;
int neg_flag = x & INT_MIN;
neg_flag && (x = x + 3);
return x >> 2;
}
int main() {
int x = 0xF0000000;
assert(mul3div4(x) == x*3/4);
return 0;
}Last updated