C语言中如何将八进制数转换为十六进制以及十六进制转换为八进制?
最佳答案
由于基数的概念仅在描述数字的表示或输出时才有意义,因此我假设您的意思是“如何在数字的八进制和十六进制表示之间进行转换?”
幸运的是,C 标准要求 printf
系列函数包含格式说明符 %o
和 %x
,分别代表“八进制数”和“十六进制数”,因此使用 snprintf
,您可以这样做:
char buffer[100];
snprintf(buffer, 100, "%X", 0777);
printf("%s\n", buffer);
snprintf(buffer, 100, "%o", 0xFFF);
printf("%s\n", buffer);
输出:
1FF
7777
此外,strtol
系列函数具有用于将字符串转换为数字的基数参数:
int n;
n = strtol("0777", NULL, 8);
printf("%d\n", n);
n = strtol("0x1FF", NULL, 16);
printf("%d\n", n);
输出:
511
511
通过这些构建 block ,您现在已经掌握了处理八进制和十六进制数值表示形式的输入以及在八进制和十六进制数值表示之间进行转换的必要知识。
关于c - 如何将八进制转换为十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56569860/