c - 如何在 C 中使用 base-16 整数

标签 c

我正在尝试编写一个程序,我需要使用 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/

相关文章:

c++ - one.cpp 和 two.cpp 都#include two.h

c - C NULL 是否等于 C++11 nullptr

c - 是否可以将两个以上的标准流连接到 Linux 中的终端?

c++ - 如何在 Eclipse 中将 C 项目与 C++ 静态库(使用 opencv)链接

c - 动态二维数组元素不可访问几个for循环

c++ - 无返回值的整数函数

C Winsock编程: input garbage

c - 如何为数组的任何未填充部分分配空字符,然后将其写入文件?

c - 在 C 中使用指针访问多维数组

c - 试图在 c 中复制字符串,第一个字母未被复制