c - 当我要使用 printf 打印十六进制值时,它会将输入作为十进制值,为什么?
问题描述
例如
printf("%x",16);
此 printf 打印 10 而不是 16 为什么它不将值作为十六进制请有人解释一下
解决方案
16
是一个十进制整数常量。因此常数的十六进制表示是10
。如果要指定十六进制整数常量,请编写0x16u
. 请注意,转换说明符x
需要 type 的参数unsigned int
。所以后缀u
用于十六进制整数常量。
所以调用printf
可以看起来像
printf( "%x\n", 0x16u );
输出将是16
.
或者
printf( "%#x\n", 0x16u );
输出将是0x16
.
推荐阅读
- python - Heroku RQ(Redis 队列)Django 错误:“应用程序尚未加载。”
- qt - 检查文件夹在QT中是否存在
- c# - 这个 Post webrequest 和 Postman 中的类似请求有什么区别?
- r - 是否可以使用 gs_ls() 获得超过 500 个结果?
- sql-server - 在 SSIS 中,在我的计算机中为目标服务器 2012 执行包失败,但是当我更改为 2016 时它可以工作
- mysql - 如何将 select 与 IN 运算符和变量值一起使用?
- ionic-framework - Ionic 4 - 包含基于属性值的组件
- python - 如何使用 VSCode 在虚拟环境中调试 python 代码?
- php - 如何连接 slim3 api 端点以提供第 3 方 php 文件
- laravel - 使用 Eloquent 在已连接的表上连接多个表