美文网首页
计算机科学导论-数字系统

计算机科学导论-数字系统

作者: 大兄弟 | 来源:发表于2020-12-01 15:21 被阅读0次

    引言

    数字系统(数 码系统)定义了如何用独特的符号来表示一个数字。在不同的系统中有不同的表示方法。例如:(2A)16 和(52)8都是指同样的数量(42)10
    我们可以用符号来表示数字,但是我们的符号是有限的。需要重复并组合它们来创建单词。下面我们看看位置化数字系统,如何通过数字,位置来表示数字。

    位置化数字系统

    位置化数字系统中,在数字中符号所占据的位置决定了其表示的值。在该系统中,数字这样表示:

    ± ( Sk-1 \cdots S2 S1 S0 . S-1 S-2 S-l ) b

    它的值是:

    n = ± Sk-1 × bk-1 + \cdots + S-1 × b-1 + S-2 × b-2 + S-l × b-l

    • S 是一套字符集。
    • b(或基数),它等于S符号集中的符号总数,其中Si指该符号的位置是i。
    • b 的幂可以从一个方向由0到K-1,还可以从另一个方向由-1到-L。

    十进制系统

    在该系统中:
    1. 底b = 10。
    2. 用10个符号来表示一个数, 符号集S = {0,1,2,3,4,5,6,7,8,9}。
    在十进制系统中,数字写为:

    ±(Sk-1\cdots S2 S1 S0 . S-1 S-2 \cdots S-l)10

    整数(不带小数)

    N = ± Sk-1 × 10k-1 + Sk-2 × 10k-2 + \cdots + S2 × 102 + S1 × 101 + S0 × 100

      1. Si 是一个数码。
      1. b = 10 是底。
      1. k 是数码的数量。

    使用位置量

    • 用10的幂表示十进制数字,下图显示了在十进制系统中使用位置量表示整数。


      image.png

    例1 :在十进制系统中使用位置量表示正整数+224

    image.png

    由上图可知,+224是三位数需要三个位置量,
    个数位(k=1) 4 = 4 × 100=1-1
    十位数(k=2) 20 = 2 × 101=2-1
    百位数200 = 2 × 102=3-1

    例2 :在十进制系统中使用位置量表示负整数-7508

    image.png
    由上图可知,-7508是四位数需要四个位置量
    个位数(k=1) 8 = 8 × 100=1-1
    十位数(k=2) 0 = 0 × 101=2-1
    百位数(k=3) 4 = 4 × 102=3-1
    千位数(k=4) 7 = 7 × 103=4-1
    二进制、八进制、十六进制都是上面的逻辑,不同点在于:
    1. 底换成了2、8、16。
    2. 符号变成了二进制:{0,1} ;八进制:{0,1,2,3,4,5,6,7};十六进制:{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}


      image.png

    四种位置化系统中的数字比较

    四种位置化系统中的数字比较

    进制转换

    其他进制到十进制的转换
    • 将数码乘以其在源系统中的位置量并求和便得到十进制中的数。思路如下图:


      image.png
    例1 将二进制数 (110.11)2 转换为十进制数6.75
    image.png
    例2 将十六进制数(1A.23)16 转换成十进制数26.137
    image.png
    • 注意这个十进制数表示并不精确,因为3 × 16-2=0.01171875。四舍五入成3位小数(0.012)也就是说3 × 16-2≈0.012。数字转换时我们需要指明允许保留几位小数。
    例3 将八进制数(23.17)8 转换为十进制数。
    image.png
    • 在十进制中(23.17)8 ≈ 19.234。再一次把7 × 8-2 = 0.109375四舍五入。
    十进制到其他进制的转换
    • 十进制转换其他进制需要分成整数部分和小数部分。
    整数部分 可使用连除
    image.png
    • 我们称十进制数的整数部分为,已转换号的整数部分的数为目标。我们先创建一个空目标。接着反复除源并得到商和余数。余数插入目标的左边,商变为新的源。如下图
      image.png
    小数部分 可使用连乘
    • 我们称十进制数的小数部分为源,已转换好的整数部分的数为目标。我们先创建一个空目标,接着反复乘并得到结果。结果的整数部分插入目标的右边,而小数部分成为新的源如下图
      转换十进制的小数部分
    • 每次重复中如何得到目标,过程如下图


      转换十进制的小数部分到其他进制
    数码的数量

    把数字从十进制转换到其他进制之前,我们需要通过k = [logbN]知道数码的数量。[x] 意味着最小的整数大于或等于x。也称为x的高限,N是该整数的十进制值。如下所示:

    image.png
    二级制--十六进制转换
    • 二进制中的4位恰好是十六进制中的1位,如下图


      image.png
    二进制--八进制转换
    • 二进制中的3位恰好是八进制中的1位


      image.png
    八进制 -- 十六进制的转换
    • 使用二进制系统为中介系统。


      image.png
    步骤如下
    • 从八进制到十六进制,先将八进制转到二进制。将位数重排成4位一组,找到十六进制的对等值。
    • 从十六进制转到八进制,我们先将十六进制转到二进制。将位数重排成3位一组,找到八进制的对等值。

    非位置化数字系统

    非位置化数字系统仍然使用有限的数字符号,每个符号有一个值。但是符号所占用的位置通常与其值无关——每个符号都是固定的。
    罗马数字是非位置化系统的好例子。

    全文摘自《计算机科学导论》

    相关文章

      网友评论

          本文标题:计算机科学导论-数字系统

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