将二进制转换为其它进制(这里转化为16进制,其它自己尝试)

代码很简单,看看就懂了,没什么好说的,就是一些位操作。

#include <stdio.h>
#define LongToBin(n) \
(                    \
((n >> 21) & 0x80) | \
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
)
#define Bin_to_Hex(n) LongToBin(0x##n##l)

int main(void)
{
    unsigned int num ;
    num = Bin_to_Hex(11111111);
    printf("num:0x%x\n",num);
    return 0 ;
}
输出结果:num:0xff

你可能感兴趣的:(将二进制转换为其它进制(这里转化为16进制,其它自己尝试))