二进制

一、进制

什么是进制

进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

进制的由来


人类为了更方便的表示数量

关于十进制

  • 人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个解剖学事实的结果
  • 至迟在商代时,中国已采用了十进位值制。从现已发现的商代陶文和甲骨文中,可以看到当时已能够用一、二、三、四、五、六、七、八、九、十、百、千、万等十三个数字,记十万以内的任何自然数。
  • 除了巴比伦文明的楔形数字为60进制,玛雅数字为20进制外,几乎全部为十进制

生活中的其他进制

  • 时间日期: 时、分、秒, 年、月、日
  • 一听啤酒、一打啤酒
  • 一磅=16盎司

二、二进制

什么是二进制

  • 由18世纪德国数理哲学大师莱布尼兹发现
  • 进制是计算技术中广泛采用的一种数制
  • 二进制数据是用0和1两个数码来表示的数
  • 它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”

计算机为什么使用二进制

  • 技术实现简单。计算机是由逻辑电路组成,逻辑电路通常只有两种状态,开关的接通和断开,正好用“0”“1”表示。
  • 运算规则简单,两个二进制数的和、积运算组合简单。
  • 适合逻辑运算,二进制只有两个数码,和逻辑代数中的“真”“假”相吻合。

二进制在生活中的应用

[http://tech.qq.com/a/20170525/016193.htm](http://tech.qq.com/a/20170525/016193.htm "程序员掉入传销组织用"代码"求救 同事"秒懂"")

二进制与八卦

三 各种常见进制

十进制

0 、1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13 ....

二进制

0 、1、 10、 11、 100、 101、 110、 111、 1000 ....

八进制

0、1、2、3、4、5、6、7、10、11、12、13、14、15、16、17、20、21 ...

十六进制

0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12、13、14、15、16、17、18、19、1A、1B、1C、1D .....

四、 进制转换(正整数)

其他进制转十进制

  • 二进制1101转换为10进制

      1101= 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2 ^ 0 =  13
    
  • 八进制 125 转换为 10 进制

      25 =1 * 8 ^ 2 +  2 * 8^1 + 5 * 8^1 = 85
    

十进制转换为 其他 进制

  • 十进制 26 转换为 二进制

      26 / 2 = 13  余  0
      13 / 2 = 6   余  1
      6  / 2 = 3   余  0
      3  / 2 = 1   余  1
      结果是  11010
    
  • 十进制 37 转换为 二进制

      37 / 2 = 18 余 1
      18 / 2 = 9  余 0 
      9  / 2 = 4  余 1
     	4  / 2 = 2  余 0
      2  / 2 = 1  余 0
      结果 为 100101
    
  • 十进制 89 转换为 二进制

      89 / 2 = 44 余 1
      44 / 2 = 22 余 0
      22 / 2 = 11 余 0
      11 / 2 = 5  余 1
      5  / 2 = 2  余 1
      2  / 2 = 1  余 0
      结果为 1011001
    
  • 十进制 589 转换为 8 进制

      489 / 8 = 61 余 1
      61 / 8 = 7  余 5
      结果 751
    
  • 总结: 10进制转为N进制。 将十进制数除以N,得到的商再除以N,依次类推,直到得到的商小于N,然后在旁边标出各步的余数,最后从最后一次商开始倒着拼上余数写出来,高位补零。

八四二一法 快速转换

  • 二进制 100100 转为 10进制

      100100 = 2^2 + 2^5 = 36
    

    挑出里面所有的1, 熟练记住2的各个次方的值

  • 十进制 77 转为 二进制

      77 = 64 + 8 + 4 + 1 = 1001101
    

    把数拆分成几个 2 的 次方数的和

  • 二进制 10110111101 转换为 16进制

      101  1011  1101  对应  5   B   D
      结果为: 5BD
    
  • 16进制 1A 转为 2进制

      1  A  对应  0001   1010
      结果为  11010
    
  • 二进制 1100101001 转换为 八进制

      1  100  101  001  对应  1  4  5  1
      结果为 1451
    
  • 八进制 227 转换为 二进制

      2 2 7 对应 010  010  111
      结果为 10010111
    
  • 熟记 2 的次方数

      2^0 = 1
      2^1 = 2
      2^2 = 4
      2^3 = 8
      2^4 = 16
      2^5 = 32
      2^6 = 64
      2^7 = 128
      2^8 = 256
      2^9 = 512
      2^11 = 1024
    

五 进制转换(小数)

十进制转二进制

  • 十进制数 10.25 转换为 二进制

      整数部分 10 转换二进制 为 1010
      小数部分 0.25
      0.25 * 2 = 0.5 取 0  小数部分 0.5
      0.5  * 2 = 1   取 1  小数部分 0.0  结束
      最后结果  1010.01
    
  • 十进制数 12.58 转换为 二进制

      整数部分 12 转换为 二进制  1100
      小数部分 0.58
      0.58 * 2 = 1.16	取  1  小数部分 0.16 
      0.16 * 2 = 0.32	取  0  小数部分 0.32
      0.32 * 2 = 0.64 取  0  小数部分 0.64
      0.64 * 2 = 1.28 取  1  小数部分 0.28
      0.28 * 2 = 0.56 取  0  小数部分 0.56
      0.56 * 2 = 1.12 取  1  小数部分 0.12
      继续 永远也玩不了 ....
      结果 1100.100101....
    
  • 总结

    小数部分只有是 0.5 0.25 0 .75 0.125 0.0625 等 可以是 有限小数
    转换为分数后,分母是 2的次方数 才可以转为有限小数

  • 同样适用 十进制 转 其他进制

二进制转十进制

  • 二进制 1101.1101 转为 十进制

      整数部分 1101转为二进制 为 13
      小数部分 
      0.11011 = 1*2^-1 + 1 * 2^-2 + 0 * 2^-3 + 1 * 2^-4 = 0.5 + 0.25 + 0 + 0.0625 = 0.8125
      最后结果  13.8125
    
  • 同样适用 其他进制 转换为 十进制

  • 熟记 2的负次方 数

      2^-1 = 0.5
      2^-2 = 0.25
      2^-3 = 0.125
      2^-4 = 0.0625
      2^-5 = 0.03125
      2^-6 = 0.015625
      2^-7 = 0.0078125
      2^-8 = 0.00390625
      2^-9 = 0.00195312
      2^-10 = 0.00097656
    

二进制和八进制或十六进制 的小数转换

  • 二进制 10.10010101 转换为 八进制

      整数部分 10 八进制 为 2
      部分 进行拆分 3个一组, 不足右补零
      100	-> 4
      101	-> 5
      010	-> 2
      最后结果  4.452
    
  • 二进制数 10.10010101 转换为 十六进制

      整数部分 10 -> 2
      小数部分 拆分,4位一组
      1001 -> 9
      0101 -> 5
      最后结果  2.95
    
  • 八进制 17.236 转换为 2进制

      整数部分 17 -> 1111
      小数部分
      2 -> 010
      3 -> 011
      6 -> 110
      最后结果 1111.010011110
    
  • 十六进制 a.3ef 转换为 2进制

      整数部分  a -> 1010
      小数部分
      3 -> 0011
      e -> 1110
      f -> 1111
      最后结果 1010.001111101111
    

六 、二进制运算

二进制加法

  • 1101 + 100101

       000110
      +100101
      ---------
       101011
    

二进制减法

  • 1001001 - 10011

      1001001
      - 10011
      ---------------
    	 110110         
    

二进制乘法

  • 1001 * 110

        1001
      x  110
      -------------
        0000
       1001
      1001
      ---------------
      110110
    

二进制除法

  • 100110 / 110

      	        110	
      	-----------------
      110)100110
      	    110
      	--------------------------
      		111
      		110
      	--------------------------
      		    10
    
      结果 110 余 10
    
posted @ 2017-07-17 15:57  blue星期天  阅读(1859)  评论(0编辑  收藏  举报