### 概述
对于任何一种进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。(来自百度)
### 进制图
### 二、八、十六进制转换十进制
方法:以二进制为例:从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。
权值(位数) | 3 | 2 | 1 | 0 | 十进制为:6 |
二进制 | 0 | 1 | 1 | 0 | |
算法 | 0 x 2^3 | 1 x 2^2 | 1 x 2^1 | 0 x 2^0 | |
相加 | 0 | 4 | 2 | 0 |
权值(位数) | 3 | 2 | 1 | 0 | 十进制为:1304 |
八进制 | 2 | 4 | 3 | 0 | |
算法 | 2 x 8^3 | 4 x 8^2 | 3 x 8^1 | 0 x 8^0 | |
相加 | 1024 | 256 | 24 | 0 |
权值(位数) | 3 | 2 | 1 | 0 | 十进制为:42012 |
十六进制 | A | 4 | 1 | C | |
算法 | 10 x 16^3 | 4 x 16^2 | 1 x 16^1 | 12 x 16^0 | |
相加 | 40960 | 1024 | 16 | 12 |
### 十进制转换二、八、十六进制
方法:以十进制转二进制为例:用十进制数除以2,分别取余和商数,当商数为0时,将余数倒着就是转化后的结果。(转八、十六进制一样,就是除以8和16)
### 二进制和八进制相互转换
方法:每3个二进制对应1个八进制 (二进制从右往左分),八进制则反每1个对应3个二进制
二进制 | 001 | 111 | 011 | 八进制为:173 |
八进制 | 1 | 7 | 3 |
### 二进制和十六进制相互转换
方法:每4个二进制对应1个十六进制 (二进制从右往左分),十六进制则反每1个对应4个二进制
二进制 | 1010 | 1111 | 0111 | 十六进制为:AF7 |
十六进制 | A | F | 7 |
### 八进制和十六进制相互转换
方法:无论是八进制转十六进制还是十六进制转八进制,都要借助二进制,也就都要先转为二进制
八进制 | 2 | 7 | 7 | 十六进制为:BF |
二进制 | 010 | 111 | 111 | |
二进制 | - | 1011 | 1111 | |
十六进制 | - | B | F |
### 补充点 - 十进制的小数(浮点数)转换成二进制
方法:小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分(不包括整数部分),然后顺序取整后的数就是转化后的结果(注意:有几位小数就要相乘几次,每次都结果在乘2)。
### 补充点 - 一般在程序中赋值方式
int a = 123; //十进制方式赋值,以正常数字1-9开头
int b = 0123; //八进制方式赋值,以数字0开头
int c = 0x123; //十六进制方式赋值,以0x开头