扩展十六进制数

时间:2015-10-12 04:01:52

标签: c bit-manipulation bit

所以我有以下十六进制数:

 0x55 which is 0101 0101

我需要将其扩展到0x55555555。我只能使用以下操作:

Legal ops: ! ~ & ^ | + << >>

我对我应该怎么做有点困惑。我知道我们必须向左移动。我确定这是一个简单的问题,所以我道歉,我现在不能再想了......

1 个答案:

答案 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