C语言中的二进制、八进制、十进制、十六进制的表示

本文介绍了C语言中二进制、八进制、十进制和十六进制的表示方法,包括各自的合法前缀和数字范围。通过实例展示了如何用printf函数进行不同进制的输出,同时指出二进制数的特殊性,需要自定义函数来转换并输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>

int main()
{

    //二进制:
    //由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头
    int a1 = 0b11;
    int a2 = -0b1001;
    int a3 = 0B10001;
    printf("十进制输出:a1 = %d, a2 = %d, a3 = %d\n", a1, a2, a3);
    //int a4 = 1010;//无前缀0b或者0B,是一个十进制数
    //int a5 = 0b3001;//只能是0或者1


    //八进制:
    //由 0~7 八个数字组成,使用时必须以0开头(注意是数字 0,不是字母 o)
    //合法的八进制数
    int b1 = 015;  //换算成十进制为 13
    int b2 = -0101;  //换算成十进制为 -65
    int b3 = 0177777;  //换算成十进制为 65535
    printf("十进制输出:b1 = %d, b2 = %d, b3 = %d\n", b1, b2, b3);
    printf("八进制输出:b1 = %o, b2 = %o, b3 = %o\n", b1, b2, b3);
    //非法的八进制
    //int b4 = 256;  //无前缀 0,相当于十进制
    //int b5 = 03A2;  //A不是有效的八进制数字


    //十六进制:
    //由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头
    //合法的十六进制
    int c1 = 0X2A;  //换算成十进制为 42
    int c2 = -0XA0;  //换算成十进制为 -160
    int c3 = 0xffff;  //换算成十进制为 65535
    printf("十进制输出:c1 = %d, c2 = %d, c3 = %d\n", c1, c2, c3);
    printf("十六进制输出:c1 = %x, c2 = %X, c3 = %x\n", c1, c2, c3);
    //非法的十六进制
    //int c4 = 5A;  //没有前缀 0X,是一个无效数字
    //int c5 = 0X3H;  //H不是有效的十六进制数字
}

下表是各种进制整数的输出格式。

上表中没有二进制的输出格式,不能使用 printf函数输出二进制数。您可以编写函数把其它进制数字转换成二进制数字,并保存在字符串中,然后在printf 函数中使用%s输出。

参考链接:1、C语言把十进制转换为二进制数的方法和示例_C语言技术网-码农有道-CSDN博客_十进制转化为二进制c语言

 2、C语言中的二进制数、八进制数和十六进制数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路漫漫之编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值