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