在讲转换以前,咱们来了解下两种进制的概念。十进制是咱们从小就开始学习的,能够说很是熟悉,之因此使用这么普遍,颇有可能跟咱们有十根手指有关。所谓【十进制】,就是:学习
数值的每一位都由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。