数学思维修炼一: 数据的表示

写在前面: 以下为书籍📚 《程序员的数学思维修炼》 第1章 <数据的表示> 读书记录。

1: 8 和 8.0 相等吗?含义相同吗?

  • 从数值大小比较来说,8.0 和 8 是相等的。

  • 在近似数的表示中,数字 8 表示数据值精确到个位,如 7.9、8.2 等数精确到个位都表示为 8。而 8.0 则表示数据精确到十分位(小数点后一位),如 8.02、7.99 等精确到十分位都表示为 8.0。因此从这个角度看两者是不同的

  • ps: 看问题得分场景❓❓❓

2: 进制的表示

2.1: 二人类为什么习惯十进制?

  • 人类最开始计数时,首先想到的是用 数手指 的方式来计数,满 10 个以后再借一双手,这种 便捷性 使得人类习惯于使用十进制。

  • 十进制对比其他进制(如二进制)更简洁,更易识别。

2.2: 计算机为什么要使用二进制?

  • 如果计算机使用 十进制,那么需要让电脑能识别 十进制 中的十个数字。假设最高电压是 12V,那么10个数字中每个数码(0~9)分配到的电压区间是 12 / 9 ≈ 1.3(v)。这样导致数码之间的电压间隔小,如果外界干扰造成电压大幅变化,数据标识就不太准确了。另外最大的问题是硬件上要标识十种状态的话,其电路构造的复杂度就非常复杂了

  • 二进制的技术实现比较简单。逻辑电路通常就只有两种状态 [开 or 关]

  • 运算规则简单,利于简化计算机内部结构,提高运算速度

  • 适合于逻辑运算

  • 二进制易于和别的进制进行转换

  • 抗干扰能力强👍。因为每位数码只有高低两种状态,当受到一定程度的干扰时,仍能可靠的分辨出是 高电平还是 低电平

2.3: 二进制的运算

  • 加法

    1
    2
    3
    4
    0 + 0 = 0
    0 + 1 = 1
    1 + 0 = 1
    1 + 1 = 10(逢2进1)
  • 减法

    1
    2
    3
    4
    0 - 0 = 0
    0 - 1 = 1(借1当2)
    1 - 0 = 1
    1 - 1 = 0
  • 乘法

    1
    2
    3
    4
    0 * 0 = 0
    0 * 1 = 0
    1 * 0 = 0
    1 * 1 = 1
  • 除法

    1
    2
    3
    4
    0 / 0 (无意义)
    0 / 1 = 0
    1 / 0 (无意义)
    1 / 1 = 1