将十进制数字转换为二进制

在开发中其实数字转换进制是经常的事,但是它是如何实现转换的呢?

先随便拿一个数字来计算,就定为 28 吧,要将 一个十进制的 28 转换为 二进制应该怎么去做呢?

  其实很简单,我们来看例子: 先将 28 除以 2, 即 28 / 2 = 14 余 0, 接着 将 14 / 2 = 7 余 0 ,接着将 7 / 2 = 3  余 1 , 接着将 3 / 2 = 1 余 1 

  最后将 最后一个商 从 后 向前拼接起来 即: 28转换为二进制 则为  11100,

  那么我们来验证一下是否是对的

  

 结果证明是对的,那我们再来一个验证这个方法:

  拿一个大一点的数,就定 453 吧

  第一步,计算:

    453 / 2 = 226 ······ 1

    226 / 2 = 113 ······ 0

    113 / 2 = 56  ······ 1

    56 / 2 = 28 ······ 0

    28 / 2 = 14 ······ 0

    14 / 2 = 7 ······ 0

    7 / 2 = 3  ······ 1

    3 / 2 = 1 ······ 1

  第二步,拼接:

  最后一个商 为 1 ,然后把这个商和这些余数从后向前拼接起来,即 111000101

  那么我们再去验证一下结果:

  

   结果说明这个方法是正确的。

  那如果我想 将一个二进制转换为一个十进制 应该怎么做呢?

  其实也很简单,例如现在有一个二进制 为 111000101,那么我们是从后向前来进行排序来进行计算。

  第一步,计算:

    1 * 2的0次方 = 1

    0 * 2的1次方 = 0

    1 * 2的2次方 = 4

    0 * 2的3次方 = 0

    0 * 2的4次方 = 0

    0 * 2的5次方 = 0

    1 * 2的6次方 = 64

    1 * 2的7次方 = 128

    1 * 2的8次方 = 256

  第二步,将结果相加起来:1 + 0 + 4 + 0 + 0 + 0 + 64 + 128 + 256 = 453

  

接下来是 16 进制和 10 进制的转换

  在这里我们先看一个对照表:

  

  在这里作出这个表的说明:其实不管是几进制,就是逢几进 1 的意思,例如我们平时最常用的十进制计算逢10进1,在进为之前有0 ,1 ,2 ,3, 4, 5, 6, 7, 8 ,9 代表,

  当然,如果是8进制,那就是 0, 1, 2, 3, 4, 5, 6 ,7 

  如果是 12 进制就是 0 到 B,

  如果是16 进制就是 0 到 F,当然还有很多其它的进制,其实都是一样的道理。

   在16进制中我们经常看到会有一些大写的字母,例如: 2AF2BC

  其实我们只要知道A B C D E F 分别代表着一个数字就可以了,A代表数字 10,B代表数字 11,C代表数字 12, D代表数字 13, E代表数字14,F代表数字15

  那接下来就简单了,因为计算其实和二进制是差不多的。

  我们来看一个例子:将十六进制 2AF2BC 转换为 十进制

  第一步:从后向前来进行排序来进行计算。

  首先是C,它代表的是12,

  那就是 12 * 16的0次方 = 12

  B代表的是11,即:11 * 16的1次方 = 176

  接下来是 2 * 16 的2次方 = 512

  F代表的是15,即:15 * 16的3次方 = 61440

  A代表的是10,即:10 * 16的4次方 = 655360

  接下来是2 * 16的5次方 = 2097152

  第二步,把它们相加:12 + 176 + 512+ 61440 + 655360 + 2097152 = 2814652

  接下来我们看一下效果:

  

   那接下来我们将十进制转换为 十六进制,计算方法和二进制是一样的其实

  那我们先随便定一个数字,例如:2589

  第一步,计算:

    2589 / 16 = 161  ······ 13

    161 / 16 = 10  ······ 1

  第二步,拼接。最后一个商为10则为A,1直接为1,13为 D , 则最后结果为 A1D

  

   

  最后我们在来看一下12进制和10进制的转换

  例如十进制的 18 转换为 12进制

  18  / 12 = 1 ······ 6

  最后一个商 是 1 拼接起来就是 16

  

   好,我们来个大一点的数字:

  例如: 241

  241 / 12 = 20 ······ 1

  20 / 12 = 1······ 8

  拼接起来就是:181 我们看一下结果:

  

   那我们来将12进制转换为 10 进制看看,

  如: 5A3B

  第一步,计算:

   B代表11,则 11 * 12的0次方 = 11

   3 * 12 的1 次方 = 36

   A代表10,则 10 * 12的2次方 = 1440

   5 * 12的3次方 = 8640

  第二步,相加: 11 + 36 + 1440 + 8640 = 10127

  

  其实就是怎么简单,所有的进制都可以通过这样的方法来进行转换

猜你喜欢

转载自www.cnblogs.com/hermit-gyqy/p/12170563.html