C语言中数的二进制、八进制、十进制以及十六进制表示及输出

以十进制数163为例:

二进制的英文是Binary,简写为B或BIN,所以163 = 0b10100011(前面加上“0b”或“0B”)
八进制的英文是Octal,简写为O或OCT,所以163 = 0243(前面加上数字0,以示与十进制的区别
十进制的英文为Decimal,简写为D或DEC,所以163 = 163(没有前缀)
十六进制的英文为Hexadecimal,简写为H或HEX,所以163 = 0xA3(前面加上“0x”或“0X”)

win10自带计算器:

代码

#include <stdio.h>

int main(void) { 
    int a = 0b10100011;  //二进制数字
    int b = 0244;        //八进制数字
    int c = 0XA5;        //十六进制数字
    
    printf("八进制输出:\n");    //以八进制形似输出
    printf("a=%o, b=%#o, c=%#o\n", a, b, c);  //中间加上#,可以输出前缀
    printf("十进制输出:\n");    //以十进制形式输出
    printf("a=%d, b=%#d, c=%#d\n", a, b, c);  //十进制没有前缀,加上没啥用
    printf("十六进制输出:\n");  //以十六进制形式输出
    printf("a=%x, b=%#x, c=%#X\n", a, b, c);  //X大写,则输出的前缀和字母都大写

	return 0;
}

运行结果:

参考文章:2.1 C语言中的进制数的表示

### 不同进制的表示方法 #### 二进制表示法 在计算机科学中,二进制是最基本的表示形式。它由两个字组成:`0` 和 `1`。每个位置上的值可以乘以2的幂次方来得到其对应的十进制值。 例如,对于二进制 `1011`: \[ (1 \times 2^{3}) + (0 \times 2^{2}) + (1 \times 2^{1}) + (1 \times 2^{0}) = 8 + 0 + 2 + 1 = 11_{(10)}\] Python 中可以通过前缀 `0b` 来标识一个二进制[^5]。 ```python print(int('0b1011', 2)) # 输出:11 ``` #### 八进制表示八进制是一种基于8的计体系,在某些特定的应用场合下非常有用,比如 Unix 文件权限设置。它的每一位可以从0到7取值。当我们将多位八进制组合起来时,每位代表的是该位权重下的8的幂次方之和。 举例来说,八进制 `173` 可以被转换成十进制如下所示: \[ (1 \times 8^{2}) + (7 \times 8^{1}) + (3 \times 8^{0}) = 64 + 56 + 3 = 123_{(10)}\] 同样地,在 Python 编程环境中也可以通过添加前缀 `0o` 或者 `0O` 来定义八进制整型常量。 ```python print(int('0o173', 8)) # 输出:123 ``` #### 十六进制表示十六进制是以16为基础的一种记方式,广泛应用于计算机领域内诸如内存地址、色彩编码等方面。除了常规阿拉伯码外还包括字母 A-F (大小写均可),分别对应着十进制中的10至15。因此,任何一位都可以是从0到F这16种可能之一。 考虑这样一个例子——将十六进制字符串 "A3F" 解析为十进制: \[ (10 \times 16^{2}) + (3 \times 16^{1}) + (15 \times 16^{0}) = 2560 + 48 + 15 = 2623_{(10)}\] 而在 Python 当中,则采用 `0x` 前缀用于表达此类据类型。 ```python print(int('0xA3F', 16)) # 输出:2623 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值