记数系统和编码 Systèmes de numération et codes associés
记数系统和编码 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进制数的十进制表示,以二进制为例:
对于十六进制,效果是相同的:
二进制转十六进制
十六进制的每一个数字都有唯一的四维二进制表示,我们可以直接替换。