美文网首页
1-Number System

1-Number System

作者: 2010jing | 来源:发表于2017-11-12 14:50 被阅读11次

    日常生活中用得最多的是十进制,还有生活时间的 六十进制 等等。
    机器语言是需要机器指令,机器指令是一串0和1组成的二进制编码,可以想象比喻为计算机的语言。如果对计算机发出一个命令,则该命令就要经过数字化编码后才能传送、存储和处理。

    回归到本问题:进制转换

    十进制 转换 二进制

    一般采取除以2,取余数,最后从下往上排列。
    十进制用 0,1,2,3,4,5,6,7,8,9 这些数字来表示;它并没有10
    这个数字来表示。
    同理,
    二进制用 0,1这两个数字表示;它并不会有 2 这个数字来表示。
    如果你的assignment,quiz,final 表示二进制的题目,你的答案有2这个数字,不用想肯定错了。

    举个例子:将 26 转换为 二进制。

    十进制转换为二进制

    需要注意:
    余数是从下往上写
    余数是从下往上写
    余数是从下往上写

    重要事情说说三遍!!!

    很多时候,辛辛苦苦计算出来,却高兴太早,顺序写错,白费力气!

    好了! 如果这里搞清楚,我们如果遇到一个比较大的数 比如 317, 那要除下来估计得好久~而且容易出错,有没有简便的方式可以做?

    其实有,
    如果你记得住 2^n 次方,那计算起来就很简便了。


    2的n次幂表

    其实我们只要记住两三个比如 2^6=64 2^8=256,就足够了,前后的数我们就可以稍稍自行计算。
    回到上面的例子,317,将其改写一下如下

    317例子

    为了演示清楚 我将一步步写出来,数学好的同学可以直接来到最后的等式。
    最终我们会得到这样的等式
    317 = 256 + 32 + 16 + 8 + 4 + 1
    = 2^8 + 2^5 + 2^4 + 2^3 + 2^2 + 2^0


    317= 2的幂等式

    这个时候我们就可以根据2的幂来得到结果。我们留意一下该例子2的幂分别是 8,5,4,3,2,0。

    制作一个对照表给大家看看。

    317幂对照表

    仔细的同学会发现,等式中的幂的数字刚刚好是和二进制对应位置匹配,如果对应位置有值,则对对应的位置输入 1,否则输入 0,最后结果就是绿色那一行。

    如果熟悉了,以后得到类似的结果
    = 2^8 + 2^5 + 2^4 + 2^3 + 2^2 + 2^0
    我们就可以直接写出结果来了。

    注意:得到2的幂,建议从右往左填,不要搞错位置。可能有些同学并不觉得这个方式简单,见仁见智,使用自己最合适的方式能够正确计算结果就好。

    二进制转八进制

    继续拿上面的 317作为例子。
    如果我们拿到了317的二进制,那么我们怎样转换为八进制?
    首先我们得知道八进制用 0,1,2,3,4,5,6,7 来表示。
    在八进制中, 7 是最大的那个数字,对应的二进制表示为 1 1 1 (需要 3 bits 才能表示 7 这个值)。
    由此,我们可以将二进制以每三位(3 bits)作为一部分,从右往左来划分。如下图:

    317 二进制

    划分完毕之后,分别对每一部分计算:


    317的八进制

    所以最后得出317的八进制就是 (0475)。

    二进制转十六进制

    有了上面的基础,接下来就是照瓢画葫芦了。
    十六进制用 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 来表示 0 到 15的值。
    在十六进制中, F 是最大的那个数字(即 15),对应的二进制表示为 1 1 1 1 (需要 4 bits 才能表示 F 这个值)。

    317的十六进制
    所以最后得出317的十六进制就是 (13D)。
    二进制减法

    这个同学们可能问的比较多,并不是不会,只是一下子从十进制转换到二进制有点不适应而已。看完本例子,希望可以更容易去理解。
    首先我们先复习一下普通的 十进制数100 - 1 是如何借位算数的。

    十进制减法借位

    分析:

    1. 个位 是0, 0 不够减 1, 向 十位 位借;
    2. 十位 也是 0,没有可以给,那 十位 又得向前一位借;
    3. 百位 有一个1,它借给 十位, 自己就变成了0;
    4. 十位 成功从前一位借到,所以借1当10用;
    5. 十位 从自己10 借 1 给个位,那 十位 就剩下 9;
    6. 个位 从前一位成功借到,所以借1当10用,10 - 1 = 9;
      最后十进制结果就是 99。

    那我们再进行 "二进制的减法"运算
    二进制数 "100" 减去 二进制数 "001"。


    二进制减法借位

    分析:

    1. 第一位是 0, 0 不够减 1,向第二位借;
    2. 第二位是 0, 0 没法借,第二位向第三位借;
    3. 第三位是 1, 它借给第二位,自己就变成 0;
    4. 第二位成功借到 1, 借 1 当 2 用(不要问我为什么当2用,因为二进制嘛);
    5. 第二位将自己的 2 借 1 给第一位,自己剩下 1;
    6. 第一位成功借到 1,借 1 当 2 用,2 - 1 = 1;
      最后计算结果是 二进制结果是(011)。
      这里我们验算一下
      二进制 100 对应 十进制是 4
      二进制 001 对应 十进制是 1
      二进制 011 对应 十进制是 3
      所以计算是正确的。

    这里举这个简单例子,是希望大家明白这个道理,跨过这个坎。


    十进制负数 转二进制

    请记住 规则 :

    1. 先转成绝对值
    2. 将绝对值转换二进制
    3. 将二进制取反
    4. 加 1

    例子 十进制数 - 315 转换 二进制。

    1. 首先是取绝对值,也就是得到 315
    2. 315 转换二进制,按照上面的方法 可以得到: 0001 0011 1011
    3. 取反得到 1110 1100 0100
    4. 加1,得到 1110 1100 0101
      最后二进制结果是 1110 1100 0101

    相关文章

      网友评论

          本文标题:1-Number System

          本文链接:https://www.haomeiwen.com/subject/sxenmxtx.html