使用printf输出8进制,16进制方法如下。

无前缀方式:

printf("%o",num)  //无前缀o的8进制数

printf("%x",num)  //无前缀0x的小写16进制数

printf("%X",num)  //无前缀0X的大写16进制数


有前缀方式:

printf("%#o",num) //有前缀o的8进制数

printf("%#x",num) //有前缀0x的小写16进制数

printf("%#X",num) //有前缀0X的大写16进制数

#include <stdio.h>
 
int main()
{
    int n;
	scanf("%d", &n);
	
	//printf("%o %d %x\n", n, n, n);
	printf("%#o %#d %#x\n", n, n, n);
	
	return 0;
}


点赞(106)
 

0.0分

147 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 108 条评论

5年前 回复TA
@Hello 为啥要前缀啊
小KEN 5年前 回复TA
@非老人 什么两个说错了,n=100应该改为n     ,100是在输入里写的
小KEN 5年前 回复TA
n前的&什么意思,为什么要敲?%后面的#代表什么?为什么要敲#?
pfsu 5年前 回复TA
@pfsu 为什么错了?必须要#吗?
pfsu 5年前 回复TA
int a;
    printf("输入一个整数,不超过10^9\n");
    scanf("%d",&a);
    printf("0%o %d 0x%x \n",a,a,a);
    return 0;
如来老祖 5年前 回复TA
@非老人 n,n,n之间不能空格
zhinian 5年前 回复TA
@非老人 printf函数那一行 双引号后面多逗号
非老人 5年前 回复TA
#include <stdio.h>
  
int main()
{
    int n=100;
    printf("%#o %#d %#x\n", n, n, n);   
    return 0;
}
为什么这个错50%,那错了?
年少不轻狂 5年前 回复TA
@Mercury #的作用是加上前缀
Hello 5年前 回复TA
@Hello 明白了要前缀!!