关于位运算的一个题目,高手请进
给出一个整数,编写一个程序将这个整数的9倍求出来,前提:不能用加减乘除法。这是一所公司的笔试题,求高手赐教!
程序代码:
#include<stdio.h> int X9(int n) { int a, f; for(a = n << 3; f = a & n; a ^= n, n = f << 1); return a ^ n; } int main() { int n; scanf("%d", &n); printf("%d * 9 = %d\n", n, X9(n)); return 0; }