二 八 十 进制

#include <stdio.h>

 

/*

 %d\%i  十进制形式输出整数

 %c 输出字符

 %p 输出地址

 %f 输出小数

 %o 八进制形式输出整数

 %x 十六进制形式输出整数

 

 */

int main()

{

    // 默认情况下,就是十进制

    int number = 12;

    

    // 二进制(0b或者0B开头)

    int number2 = 0B1100;

    

    // 八进制(0开头)

    int number3 = 014;

    

    // 十六进制(0x或者0X开头)

    int number4 = 0xc;

    

    // %d以10进制整数的形式输出一个数值

    printf("%x\n", number);

    

    return 0;

}

int main()

{

    // 一个int类型数据占据4个字节、32bit

    // 0000 0000 0000 0000 0000 0000 0000 1100

    int number = 12; // 1100

    

    // 0000 0000 0000 0000 0000 0000 0000 1101

    int number2 = 13; // 1101

    

    return 0;

}

 

 

 

 

/*

 1.二进制转十进制

 0b1100 = 0 * 2的0次方 + 0 * 2的1次方 + 1 * 2的2次方+ 1 * 2的3次方

        = 0 + 0 + 4 + 8 = 12

 0b1111 = 1 + 2 + 4 + 8 = 15

 0b1010 = 10

 

 2.十进制转二进制

 67 = 64 + 2 + 1 = 2的6次方 + 2的1次方 + 2的0次方

    = 0b1000000 + 0b10 + 0b1

  = 0b1000011

 

 3.n位二进制的取值范围

 2位二进制位的取值范围:0~3  0~2的2次方-1

 3位二进制位的取值范围:0~7  0~2的3次方-1

 n位二进制位的取值范围:0~2的n次方-1

 

 

 4个字节 -> 31bit

 0    000 0000 0000 0000 0000 0000 0000 1100

 0 ~ 2的31次方-1

 */

 

int main()

{

    void putBinary(int);

    

    putBinary(-12);

    

    putBinary(13);

 

    return 0;

}

 

// 输出一个整数的二进制存储形式

void putBinary(int n)

{

    int bits = sizeof(n) * 8;

    while (bits-->0) {

        printf("%d", n>>bits&1);

        if (bits%4==0) printf(" ");

    }

    printf("\n");

}

posted @ 2016-03-28 09:11  lance.xiang  阅读(143)  评论(0)    收藏  举报