鱼C论坛

 找回密码
 立即注册
查看: 3604|回复: 2

能不能用printf()函数直接输出负数的16进制值

[复制链接]
发表于 2012-7-12 14:13:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
printf("%#x\n",-16)
输出为0xfffffff0,是不是对计算机来说,16进制或8进制不使用负数。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-17 16:55:09 | 显示全部楼层
不同进制数,只是一种在不同情况下方便阅读的表示方式而已。。。
你可以这样试试:
unsigned char TestByte = -16;
printf("%.2x\n",TestByte);

调试一下,看看这些变量都是什么值。。。。

有时候,在你转牛角尖的时候,也行看看基础知识,会对自己有帮助!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-18 10:43:03 | 显示全部楼层
%#x  只关心对应参数二进制表示 不会理会他是正值还是负值 -16在机器内用0xfffffff0存储 %#x 就输出0xfffffff0 仅此而已
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表