c - 如何将八进制转换为十六进制?

标签 c hex octal

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/

相关文章:

C 将十六进制值 "\xHH"转换为整数

c - 如何在 C 中将十六进制转换为字节数组

node.js - 如何将八进制值表示为其字符串表示形式

c - 如何在 C 中保留函数指针?

java - 将字符串转换为其表示的十六进制值

C++ - 使用链表和一次执行一个函数的类的程序

php - 为什么 PHP 和 JavaScript 在处理八进制和十六进制数时会出现问题?

c - 用于解析 linux 配置文件的库?

c - Python C API : Passing two functions of many parameters with special types as module

c - 为什么使用 ioctl 在内核模块中会收到此编译警告?