进制转换

来源:互联网 发布:淘宝网店身份证照片 编辑:程序博客网 时间:2024/06/06 04:18

//123  除十倒序取余数

//123  /10    3

//12   /10    2

//1    /10    1


//十进制转二进制  除二倒序取余数 除到0为止

//123

//123  /2   -- 1

//61   /2   -- 1

//30   /2   -- 0

//15   /2   -- 1

//7    /2   -- 1

//3    /2   -- 1

//1    /2   -- 1

//0    /2   -- 0


//123 = 1111011 = 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 64 + 32 +16 +8 +0 +2 +1 = 123

//


//345 67 96

//345 = 0b101011001

//67  = 0b1000011

//96  = 0b1100000

//0b二进制的助记符


//int main(int argc, const char * argv[])

//{

//    int bin[32]={};

//    int a;

//    scanf("%d", &a);

//    int i=0;

//    while (a) {

//        bin[i]=a%2;

//        a=a/2;

//        i++;

//    }

//    for (i=i-1; i>=0; i--) {

//        printf("%d",bin[i]);

//    }

//    printf("\n");

//    return 0;

//}


//八进制  "逢八进一"

//0 1 2 3 4 5 6 7

//10 11 12 13 14 15 16 17 20

//八进制数表示形式是前面加0

//012


//123   除八倒序取余数

//123  / 8    3

//15   / 8    7

//1    / 8    1

//123 = 0173


//234 98

//234 = 0352

//98 = 0142


//int main(int argc, const char * argv[])

//{

//    int bin[32]={};

//    int a;

//    scanf("%d", &a);

//    int i=0;

//    while (a) {

//        bin[i]=a%8;

//        a=a/8;

//        i++;

//    }

//    printf("0");

//    for (i=i-1; i>=0; i--) {

//        printf("%d",bin[i]);

//    }

//    printf("\n");

//    return 0;

//}


//八进制转二进制

//用三位二进制数替换每一位八进制数

// 0   1     2    3    4    5     6    7

//000  001   010  011  100  101   110  111


//0765 = 0b111 110 101


//0b011101010010101010 = 0352252

//二进制转八进制

//从低位开始,每三位为一组, 高位不足三位补0,用八进制数分别替换三位二进制数



//十六进制  "逢十六进一"

//0x是十六进制的助记符

//0-15

//0 1 2 3 4 5 6 7 8 9 a/A b/B c/C d/D e/E f/F

//0x10 0x11  12 13 1f 20 ... ff 100  ... fff 1000...


//十进制转十六进制

//除十六倒序取余数


//十六进制转二进制

//0x456789 = 0b010001010110011110001001

//0xabdef34567=0b1010101111011110111100110100010101100111

//0      1     2     3     4     5      6    7

//0000  0001   0010  0011  0100  0101  0110  0111

//8      9    a     b    c     d     e     f

//1000  1001  1010 1011  1100  1101  1110 1111

//1111 ==>"8421"

//二进制转十六进制

//从低位开始,每四位为一组, 高位不足四位补0,用十六进制数分别替换四位二进制数

//0b 0111 1001 0101 1111 0101 0101 0010 0000 = 0x795f5520

//int main(int argc, const char *argv[])

//{

//    printf("%d\n",0b1111);//%d%ld打印十进制占位符

//    printf("%d\n",012);

//    printf("%d\n",0173);

//    printf("%o\n",0765);  //%o%O打印八进制占位符

//    printf("%o\n",0b111110101);

//    printf("%o\n",0b011101010010101010);

//    printf("%lx\n",0b1010101111011110111100110100010101100111);//%x%X %lx %lX以十进制的形式打印输出

//    printf("%x\n",0b01111001010111110101010100100000);

//    return 0;

//}


//567895678

//对于一个很大的十进制数,转换成二进制数 , 可以通过十六进制或者八进制数过度,也就说,先转换成十六进制或者八进制,然后再转换成二进制


0 0