鱼C论坛

 找回密码
 立即注册
查看: 3514|回复: 4

c代码问题

[复制链接]
发表于 2012-8-6 21:12:09 | 显示全部楼层 |阅读模式
3鱼币
#include<stdio.h>
int main()
{
        int a=252;
        printf("a=%o a=%#o\n",a,a);
    printf("a=%x a=%#x\n",a,a);
        return 0;
}
上面的#有什么作用? 运行时,八进制在前面补0,十六进制在前面补0x,求解析和用法?

最佳答案

查看完整内容

可以参考下这文章:http://blog.csdn.net/shanderlam/article/details/4158215
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-6 21:12:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-7 14:23:57 | 显示全部楼层
第一次看到这种情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 21:31:32 | 显示全部楼层
A First Book of ANSI C书中有详细解说:为了强制使八进制和十六进制数字都以0和0x开头输出,必须使用#格式修饰符,
例如:printf("The octal value of decimal 21 is %#o", 21);
产生显示:The octal value of decimal 21 is 025
如果转换控制符%o内没有包含#格式控制符,则显示的八进制数字应该是不以0开头的25
同样,printf("The hexadecimal value of decimal 55 is %#x", 55);
产生显示:The hexadecimal value of decimal 55 is 0x37
如果转换控制序列符%x内没有包含#格式修饰符,则显示的十六进制数字应该是不以0x开头的37
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2012-8-20 17:55:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-18 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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