|  | 
 
 发表于 2021-11-17 21:52:50
|
显示全部楼层
   本楼为最佳答案 
| 复制代码#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void print(int num, int base){
    static char res[9];
    res[0] = '\0';
    switch(base){
        case 2:
            for (size_t i = 128; i > 0; i >>= 1) strcat(res, ((num & i) == i) ? "1" : "0");
            printf("0b%s\n", res);
            break;
        case 8:
            printf("0o%o\n", num);
            break;
        case 16:
            printf("0x%x\n", num);
            break;
    }
}
int main()
{
    int num = 67; // 样例
    
    /*一般十进制能转化成二进制(Binary)、八进制(Octal)和十六进制(Hexadecimal)三种*/
    print(num, 2);
    print(num, 8);
    print(num, 16);
    return 0;
}
 | 
 |