- int num = 012;0表示的是八进制
- int num2 = 0x12;表示的是十六进制
- 二进制转化成八进制,从右向左,每3个一组,不足3位左补0,转换成八进制
- 八进制转换为二进制,用3位二进制数代替每一位八进制数
以下代码实现了,十进制到二进制,二进制到十进制,二进制到八进制
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <math.h> 4 #include <iostream> 5 #include <limits.h> 6 using namespace std; 7 //此方法不好,因为如果把二进制存放在int类型中最多只能存放八个二进制,可能会造成溢出 8 //int toBinary(int num) 9 //{ 10 // int res = 0; 11 // int mul = 1; 12 // while (num != 0) 13 // { 14 // res += num % 2 * mul; 15 // mul *= 10; 16 // num /= 2; 17 // } 18 // 19 // return res; 20 //} 21 22 //把二进制存放在字符数组中的方法实现十进制转化为二进制 23 char *ten_to_binary(int num) 24 { 25 int len = 1; 26 int temp = num; 27 while (temp / 2 != 0) 28 { 29 len++; 30 temp /= 2; 31 } 32 33 char *res = (char *)malloc(len+1); 34 35 res[len] = '