常用de进制

#include<stdio.h>
int main() {
    //   进制了解性内容
    //计算机所有的数据都是二进制存在的    C语言中整数默认都是十进制数
    //二进制 - 数字组成:0-1
    //进位规则:满二进一,以`0b`或`0B`开头
    // 由来 德国 莱布尼兹
    // 
    // 八进制
    // - 数字组成:0-7
    //进位规则:满八进一,以数字`0`开头表示
    // 
    //十六进制
    //数字组成:0 - 9,a - f
    //进位规则:满十六进一,以`0x`或`0X`开头表示。此处的 a - f 不区分大小写
    int n1 = 10;//十进制
    int n2 = 0b10;//二进制
    int n3 = 017;//八进制 换成十进制为15  
    int n4 = 0x1a;//十六进制

    printf("%d\n",n1);
    printf("%d\n",n2);
    printf("%d\n",n3);
    printf("%d\n",n4);

    //不同的进制只是整数的书写方法不同,不会对整数的实际存储方式产生影响。不同进制可以混合使用,比如 10 + 015 + 0x20 是一个合法的表达式。

    /*printf() 的进制相关占位符如下:
    %d :十进制整数。
    %o :八进制整数。
    %x :十六进制整数。
    %#o :显示前缀 0 的八进制整数。
    %#x :显示前缀 0x 的十六进制整数。
    %#X :显示前缀 0X 的十六进制整数。*/
    int x = 100;
    printf("100的十进制 = %d\n", x); // 100
    printf("100的八进制 = %o\n", x); // 144
    printf("100的十六进制 = %x\n", x); // 64
    printf("100的前缀 0 的八进制整数 = %#o\n", x); // 0144
    printf("100的前缀 0x 的十六进制整数 = %#x\n", x); // 0x64
    printf("100的显示前缀 0X 的十六进制整数 = %#X\n", x); // 0X64

    //计算机数据的存储使用二进制`补码`形式存储,并且`最高位是符号位`。
    //正数:`最高位是0`
    //负数:`最高位是1`

    //规定1:正数的补码与反码、原码一样,称为`三码合一`
    //规定2:负数的补码与反码、原码不一样:
    //负数的`原码`:把十进制转为二进制,然后最高位设置为1
    //负数的`反码`:在原码的基础上,最高位不变,其余位取反(0变1, 1变0)
    //负数的`补码`:反码 + 1

    //十进制转化为二进制,需要  《取余的逆》  比如 6/2  ....0    3/2....1      1.....1           0    
    //                                                二进制就是 0000 0110  
    // 二进制转换为 八进制   三位看成一个十进制 数   
    // 二进制转换位 十六进制 四位看成一个十进制 数  
    


    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值