问题

  • 浮点数的表示
  • 计算机内部都是补码表示吗,输入和输出时将原码转换为补码吗?
  • 乘法是如何实现的?
  • 除法是如何实现的?
  • 布尔代数如何巧妙的将数学运算转换为逻辑运算?
  • 为什么最基本的逻辑是‘非’逻辑,比如(与非/或非),而不是不是(‘与/或)呢?

非逻辑容易制造与设计
详见:https://zhuanlan.zhihu.com/p/34974464

Key Points

介绍了位的属性以及用位表示事物的方法。
语言系统最重要的是编码和解码,要考虑成本和易用性。

什么是语言

语言是一种交流的捷径。语言的意义被编码为一组符号,还需要解码,才能理解。

书面语言

书面语言是由一连串的符号构成的。
语言有三个技术组成部分:

  • 容纳符号的容器
  • 容器中允许使用的符号
  • 容器的排列顺序

    比特

    容器

    在人类语言中,它被称为字符;在计算机中被称为比特(bit)。

    符号

    计算机中是0和1。

    逻辑运算

    布尔代数

    布尔代数是英国数学家 George Boole 在19世纪提出的,是一组对比特进行运算的规则。
    有三个基本的布尔运算:

  • NOT

  • AND
  • OR

一个复合运算:

  • XOR

    德摩根定律

    19世纪,英国数学家 Augustus De Morgan 添加了一条只适用于布尔代数的定律。
    该定律规定,运算a AND b相当于运算 NOT(NOT a OR NOT b)

    用比特表示整数

    表示正数

    二进制表示。

    二进制加法

    2个比特相加时,结果的值是2个比特的 XOR 运算结果,进位的值是2个比特的 AND 运算结果。

    表示负数

  • 原码表示法:不常用 1. 存在两个0,增加成本;2. 使用 XOR 和 AND 的运算不能用这种表示法

  • 反码表示法:存在两个0;循环进位,比较麻烦
  • 补码表示法:只使用 XOR 和 AND 运算

    表示实数

    定点表示法

    浮点表示法

    IEEE浮点标准

    二进制编码的十进制系统

    BCD 编码,已不再盛行。

    处理二进制数的简单方法

    八进制表示法

    十六进制表示法

    表示语境

    命名位组

    字节。

    表示文本

    ASCII

    其他标准的演变

    ISO-646
    ISO-8859
    Unicode

    UTF-8

    Unicode Transformation Format-8 bit

    用字符表示数字

    可打印字符引用编码

    Base64编码

    URL编码

    表示颜色

    增加透明度

    编码颜色