首先我们看看《易传·系辞上传》,“易有太极,是生两仪,两仪生四象,四象生八卦。”从以下这个图就很好理解:
细心的你也许会发现,这是二进制的级数增长,这不就是1,2,4,8么!
道是独一无二的,道本身包含阴阳二气,阴阳二气相交而形成一种适匀的状态,万物在这种状态中产生。
类似的,还有纸鸢(风筝)。现在中国风筝有俩流派,即“北潍坊,南阳江”。
结绳
故夜战多火鼓,昼战多旌旗,所以变人之耳目也。
《孙子兵法》
电报
欧洲的科学家在18世纪逐渐发现电的各种特质。同时开始有人研究使用电来传递讯息的可能。早在1753年,一名英国人便提出使用静电来拍发电报。
百度百科
摩斯密码
摩尔斯电码也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,是一种早期的数字化通信形式。不同于现代化的数字通讯,摩尔斯电码只使用零和一两种状态的二进制代码,它的代码包括五种:短促的点信号“・”,读“滴”(Di)保持一定时间的长信号“—”,读“嗒”(Da)表示点和划之间的停顿、每个词之间中等的停顿,以及句子之间长的停顿。
百度百科
为“计算机之父”和“博弈论之父”。
比特(bit):也可称为“位”,是计算机信息中的最小单位,是 binary digit(二进制数位) 的 缩写,指二进制中的一位
字节(Byte):计算机中信息计量的一种单位,一个位就代表“0”或“1”,每8个位(bit)组成一个字节(Byte)
字符(Character):文字与符号的总称,可以是各个国家的文字、标点符号、图形符号、数字等
字符集(Character Set):是多个字符的集合
编码(Encoding): 信息从一种形式或格式转换为另一种形式的过程
解码(decoding): 编码的逆过程
字符编码(Character Encoding): 按照何种规则存储字符
4位和6位也是在早期比较常用的,它们当时被用在美国陆军(FIELDATA)和海军常见的可打印图形模式。这些表示包括字母数字字符和特殊的图形符号。这些集合在1963年扩展为7位编码,称为美国信息交换标准代码(ASCII),称为联邦信息处理标准,取代了1960年代美国政府和大学不同部门使用的不兼容的电传打印机代码。 这个就是ASCII的由来。呵呵,ASCII字符其实用7位就够了,不是8位哦。
10。这个10就是逢十进一变成两位数了。
0
, 1,
2,
3,
4,
5, 6,
7,
10。
这个10就是逢八进
一变成两位数了,按数值计算,这个八进制的10相当于十进制的9,是表达形式变了
。
10。
这个10就是逢二进
一变成两位数了。
0
, 1,
2,
3,
4,
5, 6,
7,
8
,
9, A, B, C, D, E, F, 10。
这个10就是逢十六进
一变成两位数了。因为阿拉伯数字没有单一数字表达的10, 11, 12, 13, 14, 15,所以采用A, B, C, D, E, F来表达,只是表达形式不一样而已。
十进制 |
二进制 |
八进制 |
十六进制 |
0 |
0 | 0 |
0 |
1 |
1 | 1 |
1 |
2 | 10 | 2 | 2 |
3 |
11 | 3 |
3 |
4 |
100 | 4 |
4 |
5 |
101 | 5 |
5 |
6 |
110 | 6 |
6 |
7 |
111 | 7 |
7 |
8 |
1000 | 10 | 8 |
9 |
1001 | 11 | 9 |
10 |
1010 | 12 |
A |
11 |
1011 | 13 |
B |
12 |
1100 | 14 | C |
13 |
1101 | 15 |
D |
14 | 1110 | 16 |
E |
15 |
1111 | 17 | F |
16 |
10000 | 100 | 10 |
O
(Oct)
来表达,写成123O?这个O和0写法相近,会让人误解的,好困惑哦。在编程语言中,通常在数字前面加个0,即0123表示八进制的123,注意跟十进制的123不相等哦。
int的内置函数,可以转换各种进制。以下看看100这个数在各个进制中对应的十进制数值是多少。
>>> int('100', 2)
4
>>> int('100', 3)
9
>>> int('100', 4)
16
>>> int('100', 7)
49
>>> int('100', 8)
64
>>> int('100', 10)
100
>>> int('100', 16)
256
>>> int('100', 17)
289
>>> int('100', 35)
1225
>>> int('100', 36)
1296
>>> int('100', 55)
Traceback (most recent call last):
File " " , line 1, in <module>
ValueError: int() base must be >= 2 and <= 36
int只能算大于等于2并小于等于36进制的数。
BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。
如果不懂这个概念,要认真读几次上面这段话。简单地理解为,1位十进制数码用4位二进制数来表示,但根据这1位十进制数码和4位二进制数的对应关系(或者表达关系)不一样而有不同的形式,如8421码、2421码、5421码和余3码、余3循环码、格雷码,其中前面三种是有权码,后面三种是无权码。
有权码,自然二进制代码是按照二进制代码各位权值大小,以自然向下加一,逢二进一的方式来表示数值的大小所生成的代码。
显然,n位自然二进制代码共有2^n种状态取值组合,由于代码中各位的位权值分别为2^3,2^2,2^1,2^0,即8421,所以也称为8421码。这样每位二进制码元都有确定位权值的编码,称为有权码,属于恒权代码。相应的,没有确定位权值的编码叫无权码,也叫非恒权代码。
百度百科——有权码
5421和2421
8421码、2421码、5421码和一位十进制数的对照关系。
十进制数 | 8421码 | 5421码 | 2421码 |
0 | 0000 | 0000 | 0000 |
1 | 0001 | 0001 | 0001 |
2 | 0010 | 0010 | 0010 |
3 | 0011 | 0011 | 0011 |
4 | 0100 | 0100 | 0100 |
5 | 0101 | 1000 | 1011 |
6 | 0110 | 1001 | 1100 |
7 | 0111 | 1010 | 1101 |
8 | 1000 | 1011 | 1110 |
9 | 1001 | 1100 | 1111 |
格雷码是一种具有反射特性和循环特性的单步自补码,其循环和单步特性消除了随机取数时出现重大错误的可能,其反射和自补特性使得对其进行求反操作也非常方便,所以,格雷码属于一种可靠性编码,是一种错误最小化的编码方式,因此格雷码在通信和测量技术中得到广泛应用。
格雷码属于可靠性编码,是一种错误最小化的编码方式。因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。
格雷码Gray Code详解(https://www.cnblogs.com/zhuruibi/p/8988044.html)
-
对n位二进制的码字,从右到左,以0到n-1编号
-
如果二进制码字的第i位和i+1位相同,则对应的格雷码的第i位为0,否则为1(当i+1=n时,二进制码字的第n位被认为是0,即第n-1位不变)
-END-
来源 | 嵌入式软件实战派
作者 | 实战派掌门
| 整理文章为传播相关技术,版权归原作者所有 |
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!