二进制基础课程

# 一、进制



### 什么是进制

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



### 进制的由来

![](http://i.imgur.com/qe4fqWs.png)

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



### 关于十进制

* 人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有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 "程序员掉入传销组织用"代码"求救 同事"秒懂"")



### 二进制与八卦

![](http://i.imgur.com/8var857.png)





# 三 各种常见进制

### 十进制

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-18 16:55  可口Cola  阅读(1021)  评论(0)    收藏  举报