所以我有以下十六进制数:
0x55 which is 0101 0101
我需要将其扩展到0x55555555。我只能使用以下操作:
Legal ops: ! ~ & ^ | + << >>
我对我应该怎么做有点困惑。我知道我们必须向左移动。我确定这是一个简单的问题,所以我道歉,我现在不能再想了......
答案 0 :(得分:1)
#include <stdio.h>
int main( )
{
unsigned int orig = 0x55;
unsigned int new;
new = orig | orig << 8 | orig << 16 | orig << 24;
printf( "orig: 0x%x\n", orig );
printf( "new: 0x%x\n", new );
return 0;
}
输出结果为:
orig: 0x55
new: 0x55555555