二进制、十进制转换

在讲转换以前,咱们来了解下两种进制的概念。十进制是咱们从小就开始学习的,能够说很是熟悉,之因此使用这么普遍,颇有可能跟咱们有十根手指有关。所谓【十进制】,就是:学习

数值的每一位都由0~9组成,共有10种状态,逢十进一,为十进制编码

二进制在生活中能够说基本用不到,可是它是计算机底层的编码组成,就是所谓的机器语言。一样二进制的理解能够这样:二进制

数值的每一位都由0和1两种状态组成,逢二进一,为二进制方法

[二进制]->[十进制]

固然,二进制和十进制同样,可以表示正数也可以表示负数,咱们这里只讨论基本的正整数的进制转换,不涉及负数和小数。咱们先来看一个十进制整数650分解到每一位后的表示方法:
650
=600+50+0 (百、10、个)
=6×100+5×10+0×1
=6×10^2+5×10^1+0×10^0(注意10^2表示10的2次方)计算机

从上面的分解过程咱们能够将每一位上的数概括为如下公式语言

=m×10^n生活

m表示当前位的值,n表示当前位右边有n个数。block

例如:百位6×10^2的理解就是当前位数值m是6,指数2表示当前百位右边还有2个数。
十进制是以10为底的指数,一样,二进制不一样就是以2为底的指数,二进制的每一位表示公式以下:底层

=m×2^n进制转换

m表示当前位的值,n表示当前位右边有n个数。

根据以上公式咱们能够试着来转换一个二进制数值:
*11011
=1×2^4+1×2^3+0×2^2+1×2^1+1×2^0
=2^4+2^3+2^1+2^0
=16+8+2+1
=27*
从上面的计算咱们能够看到,二进制只有0和1,因此咱们通常计算的时候只要考虑有1的位,而后把他们求和就能够了。

[十进制]->[二进制]

十进制转二进制其实不止一种方法,有除二取余法、凑数法等等,这里咱们介绍[凑数法]。那什么是凑数法呢?咱们知道在二进制中,每一位都是2的指数幂,因此咱们能够将一个十进制数先拆开,凑成几个2的指数的和,而后将拆开的数的指数填入对应二进制位。先来看个例子
123
=64+32+16+8+2+1
=2^6+2^5+2^4+2^3+2^1+2^0
=2^(7-1)+2^(6-1)+2^(5-1)+2^(4-1)+2^(2-1)+2^(1-1)
=1111011

从上面能够看出,第七、六、五、四、二、1位上有1值,其他为0,因此咱们将这些位填上1,第三位填入0,结果即为1111011。

相关文章
相关标签/搜索