我正在尝试编写一个程序,我需要使用 base-16 整数来确定使用 C 的 1 位错误检测。但是,我不确定 C 如何处理 base-16 整数。我必须首先从标准输入中提取低阶 16 位。我需要使用 scanf() 函数从 stdin 读取前 16 位,然后将数字存储在一个 char 数组中(我的代码目前没有考虑到这一点)。当我只是简单地测试我的程序以查看它是否会以 16 位形式打印整数时,如果我输入 base-16 数字(例如 0xcd789f),它只会在 x 之前打印 0。到目前为止,这是我的代码。到目前为止,它只是一个标准的“从 stdin 读取整数并将其打印到 stdout”程序。
#include <stdio.h>
int main()
{
int num;
scanf("%d", &num);
printf("%d\n", num);
getchar();
}
此代码无法正确处理 16 进制数。我该如何解释呢?感谢您的帮助!
最佳答案
scanf("%x", &num);
printf("%x %d\n", num, num);
无论数字是以二进制、八进制、十进制还是十六进制表示 - 数字的值保持不变。这由打印显示 - 它将以十六进制(base16)形式和十进制形式打印数字的值。
关于c - 如何在 C 中使用 base-16 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15301460/