开启历程

进制之间转换
2018-01-06 14:30:00   base

### 概述

对于任何一种进制,就表示某一位置上的数运算时是逢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开头

鲁ICP备17035054号-1