进制的转换

进制的定义:

 进制就是进位制

是人们规定的一种进位方法(百度的解释)

这里我们可以先不管这些

我们要说是进制之间的转换

可以分为两个大类

1.十进制的数转换成x进制(x可以为任何数)

2.x进制转换成十进制(x同上)

那就先说怎么把十进制转换成x进制

例如:

我们要把十进制的12转换成二进制

那么我们该如何去转换呢

这里就有一个转换的方法

1.以十进制的数作为被除数 ,然后除以要转换成的进制数(x),得到余数

2.将上次计算得到的商作为新的被除数除以进制数,得到商和余数

3.一直循环执行第二步,循环到商为0

4.当商为0时,将得到的余数从下往上倒序排列,就是我们的结果

被除数 除数 余数
12 2 6 0
6 2 3 0
3 2 1 1
1 2 0 1

注意:当商为0时就不需要去除了

我们把余数从下往上写就是我们的结果了 1100B(二进制)

PS:这里的x可以为任何进制,如二进制,十六进制

上面我们说了可以把十进制转换成任何进制

这里我们要做的就是把任何进制转换成十进制

上面我们用的是除法,这里我们要用到的就是除法

首先

1.把要转换成十进制的数拆分(把每一位拆开)

如:123拆分后就是1   2   3 

2.然后用每个数乘以进制数的

幂的取值是由每个数的位数来决定的

关于位数:假如一个数1234 4就是他的第一位,3就是第二位,2就是第三位,1就是第四位...以此类推

我们乘以的幂就是这个数的位数-1

3.把每个位数相乘后的积相加就是结果来了

把110111B转成十进制

1 1 0 1 1 1
1*(2)5 1*(2)4 0*(2)3 1*(2)2 1*(2)1 1*(2)0
32 16 0 4 2 1
          55

 

我们的结果就是55(十进制)

这里应该要注意几点:

1.括号里为什么是2?

这是因为我们转换前的数是二进制的所以括号里就是2

倘若换成其它进制括号里的数也要跟着进制数所变化

2.右上角的小数什么意思?

这代表的是幂的意思,

25表示的是5个2相乘 2×2×2×2×2

而不是2×5

不过话说回来,这个进制和我们学Java好像没什么关系呀!

 

原文地址:https://www.cnblogs.com/menghujava/p/9598628.html