一个笔试题
不考虑溢出,不用加减乘除,把一个整数乘以9。写出代码。
当时我觉得是用移位运算,但是移位是2的多少次方倍啊,求高手。
[解决办法]
- C/C++ code
int Add(int a){ int b = a<<3; int jw=a&b; int jg=a^b; while(jw) { int t_a=jg; int t_b=jw<<1; jw=t_a&t_b; jg=t_a^t_b; } return jg; }
发布时间: 2012-11-03 10:57:44 作者: rapoo
一个笔试题
不考虑溢出,不用加减乘除,把一个整数乘以9。写出代码。
当时我觉得是用移位运算,但是移位是2的多少次方倍啊,求高手。
[解决办法]
int Add(int a){ int b = a<<3; int jw=a&b; int jg=a^b; while(jw) { int t_a=jg; int t_b=jw<<1; jw=t_a&t_b; jg=t_a^t_b; } return jg; }