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;
}