我只能使用这些符号:
! 〜& ^ | +<< >>
这是我需要实现的表格:
input | output
--------------
0 | 0
1 | 8
2 | 16
3 | 24
随着输出我将左移32位int。
实施例
int main()
{
int myInt = 0xFFFFFFFF;
myInt = (x << (myFunction(2)));
//OUTPUT = 0xFFFF0000
}
int myFunction(int input)
{
// Do some magic conversions here
}
任何想法????
答案 0 :(得分:7)
好吧,如果你想要一个包含f(0) = 0
,f(1) = 8
,f(3) = 24
等功能,那么你必须实现f(x) = x * 8
。由于8是2的完美幂,乘法可以通过移位来代替。因此:
int myFunction(int input)
{
return input << 3;
}
就是这样。