printf("c:%#8o\n",c);中的#什么意思

ltolll 2006-05-01 05:03:00
int c = 2456;
printf("c:%#8o\n",c);
输出"c: 04630"
这里的#什么意思?
...全文
1341 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoyavo 2006-05-04
  • 打赏
  • 举报
回复
不好意思:我的解释中有很多地方打错字了:
纠正如下 (不包括空行):
第3行:(注:0代表十六进制) 改为: (注:0代表八进制)
第7行:int c = 7; 改为: int c = 2456;
错误原因:因为在编程试验时我使用的数是 c=7;
的17行:同上改为: int c = 2456;
飞哥 2006-05-02
  • 打赏
  • 举报
回复
<<c primer plus>>
zhangwanlong 2006-05-01
  • 打赏
  • 举报
回复
printf到底有多少用法?
lonelyforest 2006-05-01
  • 打赏
  • 举报
回复
printf 都有艺术了!!
有空看看
Mypiger 2006-05-01
  • 打赏
  • 举报
回复
是输出格式~
%d : 十进制
%5d: 输出5位.

printf( "%d", 222 )
222
printf( "%5d", 222 )
__222
anguofeng 2006-05-01
  • 打赏
  • 举报
回复
学习
avalonBBS 2006-05-01
  • 打赏
  • 举报
回复
# The result is converted to an "alternative form".
For o conversion,
it increases the precision,if and only if necessary,to force the first digit of the result to be a zero
hoyavo 2006-05-01
  • 打赏
  • 举报
回复
(1):
在你的程序中
#起到了给八进制数 4630 加上前缀 0 的作用(注:0代表十六进制)

(2):
把程序变换为:
------------------------
int c = 7;
printf("c:%#8x\n",c);
------------------------
则输出为:
C: 0x998
在这里 # 的作用是给 十六进制数 998 加上前缀 0x (注:0x代表十六进制)

(3):
程序再变为:
------------------------
int c = 7;
printf("c:%#08x\n",c);
------------------------
则输出为:
C:0x000998
在这里#的作用和(2)中类似,但在0x和数998之间添充 0 ,填满8位(%#08x中的

8 限定为8位)

(4):上面都是举例
在《C语言参考手册(第五版)》的15章中对 “#标志” 有更详细的说明

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧