进制转换

2019-01-28  本文已影响0人  silasjs

各进制的编程表示

//编程中默认就是十进制
int num = 12;
printf("十进制:%i\n", num);
        
//在编程中表示二进制,需要在数字前加上0b
int num1 = 0b1100;
printf("十进制:%i\n", num1);
        
//在编程中表示八进制,需要在数字前面加上0
int num2 = 014;
printf("十进制:%i\n", num2);
        
//在编程中表示十六进制,需要在前面加上0x
int num3 = 0xc;
printf("十进制:%i\n", num3);
        
//通过八进制的形式输出12
//%o就是以八进制的方式输出
printf("八进制:%o\n", num);
        
//通过十六进制的形式输出12
printf("十六进制:%x\n", num);

N位二进制数的取值范围:0 ~ 2(n) - 1

计算规律

 18 -> 十进制转十六进制
 18 / 16 = 1 余 2
 1 / 16 = 0 余 1
 
int num1 = 0x12;
printf("十进制转十六进制:%i\n", num1);

 18 -> 十进制转八进制
 18 / 8 = 2 余 2
 2 / 8 = 0 余 2

int num2 = 022;
printf("十进制转八进制:%i\n", num2);

 18 -> 十进制转二进制
 18 / 2 = 9 余 0
 9 / 2 = 4 余 1
 4 / 2 = 2 余 0
 2 / 2 = 1 余 0
 1 / 2 = 0 余 1

int num3 = 0b10010;
printf("十进制转二进制:%i\n", num3);
 10010 -> 二进制转十进制
 0 * 2(0) + 1 * 2(1) + 0 * 2(2) + 0 * 2(3) + 1 * 2(4)
 0       + 2        + 0        + 0        + 16
 2 + 16 = 18
 
 22 -> 八进制转十进制
 2 * 8(0) + 2 * 8(1)
 2        + 16 = 18
 
 12 -> 十六进制转十进制
 2 * 16(0) + 1 * 16(1)
 2         + 16 = 18
00 001 001 
     1   1 = 011
00 011 011 
     3   3 = 033
0001 1011
   1    b = 0x1b
上一篇 下一篇

猜你喜欢

热点阅读