【C语言笔记】<七> 进制

C语言中进制的输出
int main(int argc, const char * argv[])
{
//     1.默认就是10进制
    int num = 12;
//    2.在前面加上一个0就代表八进制
    int num1 = 014;
//    %d是以十进制的方式输出一个整数
    printf("%d\n", num1);
//    %o是以八进制的方式输出一个整数
    printf("%o\n", num);
//    在数值前面加上0b就代表二进制
    int num2 = 0b1100;
    printf("%d\n", num2);
//    在数值前面加上0x就代表十六进制
    int num3 = 0xc;
    printf("%d\n", num3);
//     %x是以十六进制的方式输出一个整数
    printf("%x\n", num);    
    return 0;
}
进制转换
int main(int argc, const char * argv[])
{  /*
     十进制  -> 二进制
     9
     转换原理:除2取余 倒序读取
     9/2  4  1
     4/2  2  0
     2/2  1  0
     1/2  0  1
     9 --> 1001
     
     
     二进制 --> 十进制
     1001
     转换原理:乘以2的幂数(幂数从0开始), 然后相加
     
     1 * 2(0) = 1
     0 * 2(1) = 0
     0 * 2(2) = 0
     1 * 2(3) = 8
     
     1 + 0 + 0 + 8 = 9
     
    1 1 1  1 1
    16 8 4  2 1

     
     N位二进制的取值范围
     1位  取值范围 0~1  0~2的1次方-1
     2位  取值范围 0~3  0~2的2次方-1
     3位  取值范围 0~7  0~2的3次方-1
     n位  取值范围  0~2(n)-1
     
     000
     001
     010
     011
     100
     101
     110
     111
     
     
     11111 0~ (32-1)
     
     
     二进制转换为八进制  进制越大表示的位数就越短
     规律:三个二进制位代表一个八进制位  
     因为3位的最大取值是7 而八进制是逢八进一
     
     1个字节 8位
     000   0
     001   1
     100   4
     
     014

     
     二进制转换为十六进制
     规律:四个二进制位代表一个十六进制位
     因为4位的最大取值是15, 而十六进制是逢十六进一
     
     0000 0
     1100 c
     
     0xc
     
     */
    printf("%d\n", 0b1001);
    
    return 0;
}

你可能感兴趣的:(【C语言笔记】<七> 进制)