记数系统和编码 Systèmes de numération et codes associés

编码 code

  • 编码是一组数字chiffre、字母lettre、单词mot等与某些符号(可能具有相同性质或任何其他性质)之间的双射对应关系。
  • 当与数字系统直接关联时,编码被称为加权pondéré编码,因此可以直接对编码表达式执行经典算术操作。

记数系统 Systèmes de numération

基和基数 base et clé

记数系统的基本元素是其基base ,是一组可用来表示任何数值x的数组,其中的数字被称为比重poid

基是由一个自然数N和其幂组成,被称为基数clé

如果我们只对整数感兴趣,可以将其定义为:

由此,我们可以将任何一个整数表示为:

其中$a_i$被称为数字digit

二进制系统和二进制编码 Système binaire et codes binaires

二进制系统 Système binaire

二进制系统是一个基数为2的加权数字系统。

比特和字节(八重奏) bit et octet

  • 二进制系统的数字被称为比特bit from binary digit
  • 八个比特被称为一个字节octet
  • 如果我们将1024近似为1000,则有

自然二进制编码(纯二进制数) Code binaire naturel ou binaire pur

自然二进制编码建立起二进制编码与十进制编码的联系

编码某十进制数字所需位数

使用$n$位可以表示所有$0$到$\left(2^n-1\right)$的数字

或者可以使用如下公式计算最小需要的位数。

十进制数字增加时的风险

当从一个十进制数字切换到下一个数字时,可能会发生多个逻辑变量改变状态(例如,在代码0111和1000之间,对应于十进制数字7和8,4个逻辑变量同时改变状态)。多个变量状态的同时变化可能导致技术风险,这意味着多个技术组件必须同时改变状态。

组件将以先验未知的顺序连续改变状态,系统将在短时间内操纵错误数据,但足以考虑错误数据。例如,我们可以在0111和1000之间有以下瞬态代码:

这意味着系统将同时通过值15、11和9,而不是直接从7传递到8,这可能导致计算错误。

格雷码 Code binaire réfléchi (ou code Gray)

格雷码基于自然二进制码,并消除了其多个变量同时改变的风险。在两个连续十进制数之间,格雷码仅有一个变量会发生变化。

以二进制为0值的格雷码为第零项,第一项改变最右边的位元,第二项改变右起第一个为1的位元的左边位元,第三、四项方法同第一、二项,如此反复,即可排列出n个位元的格雷码

  • 0和1的编码不发生变化

格雷码和普通的二进制码可以通过公式:$\mathrm{Bn}=\mathrm{Gn} ; \quad \mathrm{Bi}-1=\mathrm{Bi} \wedge \mathrm{Gi}-1 ; \quad(\mathrm{i}=1,2, \mathrm{n}-1 ;)$转换,如下:

尽管格雷码解决了多个变量同时改变的问题,但他不再是一个加权编码。

BCD码(二-十进制编码) Code DCB (Décimal Codé Binaire)

BCD码对每个十进制数字使用一串单独的二进制编码来存储与表示。并使用这些编码的叠加来表示更大的十进制数。

它具有能够与非常快速的编码/解码算法相关联的优点,并且其主要应用之一是常用的七段显示器。

最常用的BCD编码是8421码,这是一种恒权码,对于其四维,权重分别为8\4\2\1,如:$(0101)_{BCD} = 0\times8+1\times4+0\times1+1\times1 = 5$

条形码和二维码 Code p parmi n

Code p parmi n是一些一系列编码方式,最重要的用途是条码和二维码。能提供$C_n^p=\left(\begin{array}{c}n \p\end{array}\right)$个编码。

阿斯克码 Code ASCII

十六进制系统和十六进制编码 Système hexadécimal et code hexadécimal

十六进制系统 Système hexadécimal

十六进制系统用于以紧凑的方式表示来自二进制系统的4位组。它在计算机科学中广泛使用,特别是用于指定存储区的地址。

它有16个数字:前10个数字的数字0到9,后6个数字的字母a到f,具有以下对应关系:

不同进制之间的转换 Changements de système de numération

十进制转N进制

根据定义,X在N进制中可以表示为:

由此我们可以发现,如果我们使用欧几里得除法除以N,我们将得到其余数$a_0$,而其商可以表示为:

我们又可以通过继续除以N的方式来获得$a_1$。由此,我们可以得到X在任意进制中的表示。

我们可以使用一种被称为短除法的方式来快速计算,以$(145)_{10}=(10010001)_2$为例。

或者以$(6751){10}=(1 \mathrm{A} 5 \mathrm{F}){16}$为例

N进制转十进制

我们可以使用加权编码的性质快速计算N进制数的十进制表示,以二进制为例:

对于十六进制,效果是相同的:

二进制转十六进制

十六进制的每一个数字都有唯一的四维二进制表示,我们可以直接替换。