个性化阅读
专注于IT技术分析

C语言printf如何输出二进制数格式?将十进制数转为二进制输出

C语言printf如何输出二进制数格式?如何将十进制数按二进制数输出?C语言printf二进制输出字符的格式是什么?C语言可以二进制输出吗?

C语言printf打印没有提供二进制格式化输出转换说明,需要自定义实现输出二进制数格式,实现的算法主要是使用移位操作符,使用&与位操作,将1与各位比较提取各位出来,具体的实现算法如下:

void print_bin(int number);
void print_bin_simple(int number);

int main(void){
    int number = 0xAF01BC;
    print_bin(number); // 完全位二进制数格式输出
    print_bin_simple(number); // 去掉前面无效0二进制数格式输出
    return 0;
}

/*
 * 二进制数格式输出,输出所有位
 * 6bit
 * 011010
 * 100000 1<<5
 * &
 * */
void print_bin(int number){
    int bit = sizeof(int)*8;
    int i;
    for(i = bit - 1;i >= 0;i--){
        int bin = (number & (1 << i)) >> i;
        printf("%d", bin);
    }
    printf("\n");
}

// 二进制数格式输出,输出有效位,过滤掉前面的0位
void print_bin_simple(int number){
    int bit = sizeof(int)*8;
    int i;
    int status = 0;
    for(i = bit - 1;i >= 0;i--){
        int bin = (number & (1 << i)) >> i;
        if(bin == 1)
            status = 1;
        if(status == 1)
            printf("%d", bin);
    }
    printf("\n");
}
赞(0)
未经允许不得转载:srcmini » C语言printf如何输出二进制数格式?将十进制数转为二进制输出

评论 抢沙发

评论前必须登录!