c语言-8进制的表示方法

文章目录


一、8进制

在C语言中,表示8进制数需要使用前缀数字0,而不是通常的o或者0x.

8进制数以数字0作为前缀,后面跟着一串八进制数字(0-7)组成,一个8进制数可以表示为0123表示十进制的83

二、输出格式

要将8进制数输出到屏幕上,可以使用printf函数中的格式控制符"%o",要输出变量num的值,可以写成printf("%o", num);,输出结果将以八进制的形式显示。

三、范围限制

由于8进制数只有八种可能的数字(0-7),因此其表示的范围有限,对于一个无符号整数类型的变量,最大值是255(即2^ 8 ),如果超过了这个范围,会发生溢出,对于有符号整数类型的变量,范围是-128到127

四、八进制的负数

十进制有负数,八进制也有负数,-0123是合法的八进制数,也就是十进制的-83

c 复制代码
int main() {
    int num = -0123;
    printf("%d, %o\n", num, num);
    return 0;
}

五、程序

①从键盘输入一个八进制数,输出其对应的十进制和十六进制

c 复制代码
#include <stdio.h>
int main()
{
    int a = 0;
    scanf("%o",&a);
    printf("%d %#x",a,a);//c语言中符合%#的意思是带格式输出。%#x的意思是在输出前面加上0x
    return 0;
}

%#x :输出一个十六进制的整型数,前面带0x, 如果x大写,则显示时也是大写

②%x、%X、%#x、%#X 的区别

c 复制代码
# include <stdio.h>
int main()
{
    int i = 47;
    printf("%x\n", i);   
    printf("%X\n", i);   
    printf("%#x\n", i);   
    printf("%#X\n", i);   
    return 0;
}

//输出结果:
2f
2F
0x2f
0X2F

如果是小写的x,输出的字母就是小写的;

如果是大写的X,输出的字母就是大写的;

如果加一个#,就以标准的十六进制形式输出。

最好是加一个#,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数!

相关推荐
小北方城市网2 分钟前
Python + 前后端全栈进阶课程(共 10 节|完整版递进式|从技术深化→项目落地→就业进阶,无缝衔接基础课)
大数据·开发语言·网络·python·数据库架构
程序员JerrySUN8 分钟前
OP-TEE + YOLOv8:从“加密权重”到“内存中解密并推理”的完整实战记录
android·java·开发语言·redis·yolo·架构
阿里嘎多学长18 分钟前
2025-12-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
郝学胜-神的一滴35 分钟前
Linux进程与线程控制原语对比:双刃出鞘,各显锋芒
linux·服务器·开发语言·数据结构·c++·程序人生
小钟不想敲代码42 分钟前
Python(一)
开发语言·python
ji_shuke1 小时前
canvas绘制拖拽箭头
开发语言·javascript·ecmascript
qq_336313931 小时前
java基础-IO流(缓冲流)
java·开发语言
青岛少儿编程-王老师1 小时前
CCF编程能力等级认证GESP—C++2级—20251227
java·开发语言·c++
沐知全栈开发1 小时前
jQuery 杂项方法
开发语言
wregjru1 小时前
【C++】2.6 红黑树及其实现(附代码)
开发语言·c++