C语言 十六进制怎么输出?

#include<stdio.h>voidejz(int);voidbjz(int);voidsljz(int);voidmain(){inti;scanf("%d",&... #include<stdio.h>void ejz(int );void bjz(int );void sljz(int );void main(){ int i; scanf("%d",&i); printf("二进制为:"); ejz(i); printf("八进制为:"); bjz(i); printf("十六进制为:"); sljz(i);}void ejz(int a){ int c,b; b=a/2; if(b!=0) ejz(b); c=a%2; printf("%d",c);}void bjz(int a){ int c,b; b=a/8; if(b!=0) bjz(b); c=a%8; printf("%d",c);}void sljz(int a){ int c,b; b=a/16;if(b!=0) ejz(b); c=a%16; printf("%d",c);} 展开
 我来答
弓素塔和雅
2020-05-03 · TA获得超过3562个赞
知道大有可为答主
回答量:3149
采纳率:27%
帮助的人:236万
展开全部
数据溢出了,十六进制的“cffffff3”对应十进制是“3489660915”,远远超过int型数据的范围,你若将数值改小,比如“ffff3”,最终输出的结果就会相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苍涛封晓燕
2020-01-03 · TA获得超过3768个赞
知道大有可为答主
回答量:3162
采纳率:28%
帮助的人:162万
展开全部
输出的变量地址是内存地址,十六进制的地址也是符合十六进制的。值跟地址是一致的。因为题中“kptr=&k;”,所以K的地址就是kptr的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海阔天空403
2014-01-09 · 超过28用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:57.2万
展开全部
将“%d”改为“%x”即可,输出的ABCDE为小写。改为“%X”,输出大写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式