|
发表于 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;
- }
复制代码 |
|