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);}
展开
8个回答
展开全部
数据溢出了,十六进制的“cffffff3”对应十进制是“3489660915”,远远超过int型数据的范围,你若将数值改小,比如“ffff3”,最终输出的结果就会相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的变量地址是内存地址,十六进制的地址也是符合十六进制的。值跟地址是一致的。因为题中“kptr=&k;”,所以K的地址就是kptr的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将“%d”改为“%x”即可,输出的ABCDE为小写。改为“%X”,输出大写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询