人一生会遇到约2920万人,两个人相爱的概率是0.000049。所以你不爱我,我不怪你。 收藏本站
登陆 / 注册 搜索

阅读: 855   回复: 1

[# 系统基础] 计算机原理(二进制)

仗剑天涯论坛大牛 2020-3-31 20:01 |显示全部楼层

今生相逢便是缘分,何苦去怨恨,何苦去仇视。

主题破百
作者|刘栋梁,微信公众号|软件那些事儿" E; H) Q+ p3 G  e

# I9 \9 B, }7 g; S$ w一、二进制
& L$ z! q2 B- p" ^8 j$ R0 j0 }, T, X2 N4 E5 l; y
只要是学习计算机的,或者不学习计算机的,都一定听说过二进制这个词语。什么逢二进一,反正感觉不像人话,也听不懂。不管懂不懂呢,大家基本都认识到了二进制的巨大威力,并且也知道了这样一个笑话,世界上有10种人,一种懂二进制,一种不懂二进制。所以,这一次,我想讲讲二进制的一些故事。7 V7 Y/ l3 f3 W( F2 c
" s* ~* ?& d6 q4 }; j4 e9 J- k
计算机原理(二进制) shutterstock_1141880129.jpg
. O% `$ ?0 W) E- h0 Z. y& l( {' x' N4 \
在正式讲二进制之前,我先来说说二维码。
& ~3 n, Z6 v7 D6 p; t8 M$ ?/ T" D2 Q7 k  w- y2 X) ~# o
二、二维码
, t0 _( h7 Q: h, N7 |6 b. T$ R/ \
自从手机时代以后,每个人都难免要扫一扫二维码。什么是二维码呢?简单来说,二维就是平面,码就是code的意思,编码。二维码就是在平面方向上一个黑白相间的图形。& m6 e4 b. e% G) A  H  A) X* T
  w" j. z. \+ }
计算机原理(二进制) QR_code_for_mobile_English_Wikipedia.svg.png

. D1 ?8 q) j7 |8 l& `: W, U比如说,我们经常使用的微信的二维码就是其中的一种,也是最流行的一种二维码,叫做矩阵式二维码。这个二维码上有三个最大的色块,就是角上那三个最大的色块,是用来定位的,这样就不怕扫描二维码的时候,手机拿偏了,导致信息扫描不出来。
2 z( o; N- a5 h3 _# u% k) N- @) S- `! p  R* }- _
矩阵二维码有很多版本,在这里只讲version 1, 一个21×21的矩阵。二维码有40个尺寸,每一个尺寸增加4,也就是说version 2是25×25,最大的尺寸是21+(40-1)*4 = 177,最大的尺寸就是177 X 177个小格子。可以把这个想象成围棋的棋盘。对二维码进行编码就是把这个棋盘涂成黑白两种颜色。其中当然包括很多其它的技术细节,我只讲几个技术细节,首先讲纠错码。
6 r6 y" K% ?" [- Z  H9 }4 s% j6 h. h. X' \" q% J$ V7 W
在我们常见的二维码中,分为四种级别的纠错码,分别是LMQH四种级别。L 级别是7%的字码可修改,M级别是15%的字码可修改,Q级别是25%的字码可修改,H级别是30%的字码可修改。所以,二维码破损也可以被识别。很多人在二维码上加上自己的头像。二维码纠错的算法是Reed-Solomon error correction(里德•所罗门纠错算法),比较复杂,纯数学。然后再将这数据和纠错码交替放在一起,最后一步才是填充最后的编码。
  j, v8 m0 E; F! f1 H) ?. D+ E$ Q
填充的过程是从左下角开始填充,黑色代表1,白色代表0,如果碰到非数据区,就绕开或者跳过,最后,就生成二维码的图片。生成以后,如果二维码出现大面积的空白或者黑色,扫描起来会更困难。所以,最后填充的图片还要经过一个操作,叫Masking(化妆)。QR里面有8个不同的图形供大家选择,这8个图像黑白分布非常均匀,因此,还要把最终生成的图像和这8个提供的mask图像做一个XOR操作。这个Mask操作只和数据区进行操作,不会影响功能区。所以我们看到的二维码,不会出现大片连续的黑色或者大片连续的白色。$ ~" s) C" F1 |9 z

; i2 D4 W6 c. k; c! z$ B我为什么讲二维码呢?因为二维码可能是目前我们用眼睛看到的,用的最多的一种二进制。黑色的代表1,白色的代表0。计算机中就是使用二进制。/ b/ [* Z' k( D  h$ X
0 k; ~' z8 h# s" e  g# g
三、十进制
& Z7 ^) O6 w8 h* f- i7 Q2 k; U) S) j* m. _# \# G& c7 a
不管我们是去日本还是去美国,可能其它的文字看不懂,但是去超市的话,有一个东西一定看得懂,就是数字。从0-9这十个数字,不管哪个国家,都是使用这个方式来写数字,除了一些美洲的印第安人部落可能使用其它的计数方式。可以说,阿拉伯数字是最通用的语言。这0-9的十个数字是人类广泛使用的计数体系。据说,十进制在5000多年以前就出现在古埃及了,中国也考证说在殷墟里的甲骨文上也发现了十进制,大约3000多年以前。具体是不是真的,我不知道。7 G# B/ s. H; h( D8 m( Z

% N7 X: b( M6 n  B& m! H! T有个说法是,因为人有十根手指,所以才使用十进制,如果青蛙来计数的话,可能是8进制,因为青蛙可能是有四根手指头,我从网上搜了几张图片看了一下,感觉是四根手指头。当然了,我不懂生物学,只是个程序员,闷声写代码,如果说错了,不要笑我太简单太幼稚。如果青蛙会认识数字的话,应该也是数手指头,可能会用8进制,所以,以后如果青蛙开始制造电脑,天生使用八进制,应该是个非常大的优势。
) c, ]: k# z6 H& f# t7 d4 ?+ @! u7 G9 E* k: x: z! A/ G" L2 g, z4 [
四、算盘
# s, C/ h7 u1 W! i6 G( n4 k3 e1 Z) d. P. ?& G9 ^( D7 {$ `/ a
算盘这个东西,我们这里有意无意的暗示,这玩意是中国发明的,而且算盘和计算机有莫大的关系。这么说也不算错,中国算盘确实是中国发明的,但是这个世界上存在各种各样的算盘,有巴比伦算盘,有古希腊算盘,有古罗马算盘,样子都差不多。都是使用一些小球球来计数,中国的算盘其实是宋朝末期,元朝初期才开始大规模流行。在此之前使用的方法是算筹,这玩意也很先进,有兴趣的可以研究一下,算筹这个从周朝,汉朝就大规模使用了,就是用一些木棍就能计算。  \; m9 \5 e( M9 b& E3 L! D
0 b& H' u2 u" D) H6 P3 [: ?3 y
计算机原理(二进制) Replica_of_Han_Dynasty_Counting_rods_in_National_Museum_of_Natural_Science_in_Taiwan.jpg

6 C5 r8 O; d, ^! ~& n我们古代的算盘是上面两个珠子,下面五个珠子。如果用这种算盘来计数十进制的话,有两个珠子永远都用不到,所以,日本的算盘是上面一个珠子,下面四个珠子,我们中国现在的算盘,基本上也是日本算盘的样子,当然,现在都用计算器了。现在很少见到有人用算盘了。我看过一篇文章,因为中国有一个成语叫“半斤八两”,那篇文章里说,中国古代的算盘其实是计算十六进制的,如果那篇文章是正确的,那就能解释为啥中国古代算盘是上面两个珠子,下面5个珠子,因为这样,正好是十六进制中的最大的数15,而中国古代,16两算一斤,不是现在的10两算一斤。我个人认为这个说法是靠谱的。3 D2 b. E  c' J9 G" T

) i# `+ v0 p5 G& {* N0 |! Y! X- f算盘虽然不用了,但是,我们可以通过算盘来理解进位的概念。我们以上面一个珠子,下面四个珠子的日本算盘为例。/ h& c/ c% @# G
- h/ T% P  k0 |+ M! S: A4 T
计算机原理(二进制) unnamed.jpg

( L& t9 n+ h2 V$ p当我们要输入9的时候,在最后面的一栏,使用上面一个珠子,下面四个珠子,如果输入数字10,只能使用倒数第二位的一个珠子,也就是所谓的逢9进1。如果我们使用二进制算盘,每一栏只需要一个珠子,因此,只要表示超过数字1,就进一位。所以,当有进位的困扰的时候,心里想一下算盘就好了。2 R$ C, p; V3 y% t

/ x/ l4 t+ ]& s) s二进制对计算机来说,尤其是我做的这个系列,使用继电器来构造一个计算机,只要有电流通过就是1,没有电流通过就是0。因此,这样对计算机来说,使用二进制很简单,但是,对人类来说,二进制的长度太长了,增加的速度太快,并不容易读,为了解决这个问题,每四个二进制组成一组,这样可以组成八进制或者十六进制,从某种意义上来说,八进制和十六进制,纯粹是为了满足人类的可读性,对计算机来说,都是二进制。( A8 J& U9 a7 C% z& s; k( n( w
  O% F. f- x) m# X$ H
在1950年左右,一个美国数学家意识到二进制的重要性,这个数学家的名字叫约翰•威尔德•特克,他决定给二进制起一个名字,在此之前二进制的英文单词是binary digit。这是两个单词,这个数学家想起一个更短一点的名字,在选定了好几个名字以后,最终选择了bit这个单词,这个单词只要三个字母,最终也证明了这个数学家的眼光,bit这个单词可以入选上世纪最重要的单词之一。另外,也有人说这个名字是信息论的提出者香农命名的bit,这两种说法都有,我也不知道哪个是真的,所以,留给有考据癖的各位自己去考据吧,考据好了,告诉我一声。
6 u; L3 z5 U/ Q& @+ I5 a
" R" H' V( s$ o: u$ k3 ?9 Z- x五、bit的意义
5 i+ g6 H! e4 Z( B7 r+ W. o. Y0 K; U3 _" ~, _/ O. l
bit到底有什么意义呢?当我们发明一个单词的时候,通常要有某个特殊的意义。在计算机中,比特的意义是信息的最小单位,1比特在计算机中是最小的信息量,也就是说,在计算机上,我们不能传播小于1比特的信息。比特传播的信息非常小,如果要传播更多的信息,就需要更多的比特。
( D( X9 a  p5 [! V% l: {$ h: G2 x0 c, w* k9 k4 D9 T; d
那什么是信息呢?你追个女朋友,她答应或者不答应是一种信息;今天有雾霾或者没有雾霾也是一种信息;这种信息是可以通过计算机传播的,因为这种信息是非此即彼。还要一种信息是没法通过计算机来传播的,尤其是情绪,比如说,女朋友今天的心情,你说好吧,又不太好,你说不好吧,又还可以。# w9 V/ P0 E1 w- c! I& V. C  {5 u

6 G* F4 P$ R% n3 R这种信息不是非此即彼的,电脑中无法表示这种状态,女朋友的脾气嘛,一会儿好,一会儿坏。这种信息对我们人类至关重要,但是,使用计算机的确非常难以表示这种状态。所以,至今为止,不管人工智能如何发展,我们人类还是没有和计算机建立起某些浪漫的关系。因为二进制的计算机目前只能表示出来确定的状态,不会撒娇,所以,一点也不可爱。: G' n# N2 }4 b; u% @8 K' p

( o% x$ a3 W5 P; C# _1 _也就是说,如果我们无法使用文字,图画或者声音来表示某种事物或者信息,那么我们也没办法用计算机表示出这种信息。比如说,你犯了错误,你女朋友一个犀利的眼神,让你后背发凉,这个犀利的眼神,无法用文字,也无法用语言,更无法用图片表示出来,这种的确存在,而又尽在不言中的信息,计算机无法搞定。( C) R* c5 f1 @/ @

0 |2 g/ o3 S: r所以,我对人工智能在某些特定的领域超过人类,没有任何怀疑,如果说人工智能全方位超过人类,我是有怀疑的。计算机在一些确定的领域,尤其是非黑即白的领域,比如围棋,象棋领域,还有一些游戏领域,比如说踢FIFA足球游戏,如果调成难度很高的话,实际上很难赢电脑,这也算是人工智能的一种。只是电脑踢球能赢了人类,没引起关注,由于围棋以及Google的阿尔法狗才觉得人工智能要翻天了。- u  d; K$ t2 d* i3 p$ D3 @

9 E3 ?& p; ~4 h0 I8 Q/ H7 k5 s" X六、人工智能& `2 A% h* I" `. C, c3 ~
2 {5 v( g4 w% ?" `  T: f# r' Y
既然谈到这里,我就多说一点人工智能,显然今天说这个话题,有点落伍,因为Google的AlphaGo以及不是热点了。其实Google的AlphaGo是收购的一个公司,这个公司叫DeepMind公司,是搞深度学习的。深度学习也不算特别前沿的科技,他有一个名字叫人工神经网络,如果年龄比较大的话,肯定听说过这个名字,人工神经网络,一个被抛弃冷落了很多年的技术。+ O2 o( z& m# b3 P$ ~
7 j$ G, R0 M9 _  }7 O- s
这个人工神经网络技术在80年代是热点,90年代被各大研究机构以及各个大学抛弃。所以,正经的名牌大学,根本不怎么研究这玩意。因此,现在人工神经网络改名叫机器学习以后,并且突然热门以后,我们就会发现一个神奇的现象,最热门的热点,不是在美国,而是在加拿大,比如多伦多大学,蒙特利尔大学,这些游离与著名与非著名大学的那种学校,主要的那些著名大学,根本没有研究这种东西的,感觉落后了啊。
1 |$ Q: w8 Y- h
" A+ s$ ?6 P! f3 k; z' }让人工神经网络咸鱼翻身的转折点是一篇论文,主要是用来识别手写字母的,当时主流算法的准确率是98.6%,然后一个计算机科学家使用深度置信网络,这是一种神经网络,把准确率提高到98.75%,一下子就超过了主流的SVM算法,然后大家才又开始关注人工神经网络。现在人工神经网络已经在语音识别,包括苹果的siri还有微软的小冰,亚马逊的echo,这些都是深度学习,还有图像识别等领域大放异彩。
% A$ p! `$ w5 V/ k$ V
% n  D& {5 u- x0 `; `4 W# |: D以后怎么样,我当然肯定是不知道的,搞不好某一天被某个算法拉下马也是很有可能的。比较深度学习就是这么被冷落了十几年,突然又开始红起来的。9 i7 l/ @1 a. E" L, _
: y, ^4 M& N2 N) @7 c4 F" x
七、我的一些胡思乱想) A, }) J( D+ k

% x+ U% Z" Y6 s( C  T7 w人工智能这个东西,我其实一直很关注的。人类这个物种,其实所有人的预测都不怎么准,唯一能提高命中次数的方法就是每天多预测几个事情,然后总有一个两个能预测准确,瞎猫碰到死耗子也能蒙对几个。暂时我们先不管人工智能,先看看其它的领域,都是科学领域吧。
8 `1 F* F5 Y; P5 L) f; S( e5 S: e% ]! X& Q4 W2 p- [" h% ^
上个世纪,人类造出了原子弹,还把人送到月球上,然后乐观的预测家就说,再过50年,核能驱动的汽车满大街跑,50年内火星上移民不是梦。悲观的预测家则另外一套说辞,完蛋了,练核弹都造出来了,第三次世界大战肯定是互相扔核弹,人类肯定要灭绝了。现在早就超过50年过去了,我们再来看看这两个阵营的预测,都错的十万八千里。
* l* I6 R! R5 r+ b0 L, o
1 Y; ^7 Q% U# V; ~乐观者说的核动力汽车满大街跑的景象肯定没出现,别说核动力汽车,我们现在造个汽车,还断轴,不是前轴断就是后轴断,还得弄一块铁板,打个补丁来解决问题。悲观者说世界末日来了,其实人类就使用了两次核弹,都给了日本。如果想灭绝人类,估计还得靠老朋友金三胖,这个最有出息的80后每天就知道放炮打炮。# W" J6 |0 i3 a: x* z

7 T5 R5 o% `" R" F% k7 {同样是上个世纪,物理学突飞猛进,一个接一个的理论接踵而至,相对论量子力学一个接一个的出现,乐观者也是很高兴的预测,大统一理论近在咫尺了,结果现在也没搞定。去年还是前年,有个荷兰的科学家提出了墒增理论来加强爱因斯坦的广义相对论,至于这个理论正确不正确我不知道,起码证明了目前还没有搞定大统一理论,预言家又再次乐观过头了。# o3 s8 O+ ~0 z% q/ _8 k

% n8 N$ ]1 R+ i# b2 C+ _  Z% \6 @墒增理论很神奇,墒永远都是增大的,永远增大,不会减小,这个广告词可以当男科医院的广告词,墒增男科医院,永远变大,不会缩小。以后有钱了,我打算注册一个男科医院,就叫墒增男科医院。
, I- P/ B; [8 M  F# w4 E; N" ?" Q7 |  ~2 n; F
换到人工智能这个方面,乐观者说,马上了,奇点临近,人类赶紧准备准备后事,马上就没有人类啥事儿了。这个观点现在是主流观点,因为这个观点很吓人,尤其是国外有个博客叫wait buy why,这个博客上写了关于人工智能的一篇文章,然后我觉得国内基本上所有的观点都是这篇博客还有《奇点临近》那本书里的。
8 I3 T6 Z9 M- p% w9 N' C2 C7 R, @
这个是主流的观点,就是人工智能马上超越人类。我个人觉得,不能太乐观啊。因为核能汽车我们没有见过,再过50年也够呛。大统一理论我们也看不到,其实物理领域,已经差不多停滞了五六十年了,还是不要太乐观的好,最被看好弦理论也没啥突破性的发展。最近看新闻说,谷歌公司的无人驾驶汽车项目已经接近取消了,按照谷歌一贯的原则,很多都是宣传的天花乱坠,最后搞的不声不响就砍掉,比如谷歌眼眼镜,还有组装汽车项目,还有通过气球上网项目,还有每一两年出一个聊天软件项目,最近的最震撼的就是谷歌的自动驾驶项目。: }4 Q; ]3 L# x, U
: y5 ]% F; T# O& b' U
要知道,谷歌当时宣传的,以及很多媒体跟风的,说这玩意比人开的好,显然,应该是没达到目的。否则,干嘛不量产,而是选择取消项目呢?只留下乐视自动驾驶汽车一路狂奔了…
2 `- @1 V* u/ q( ^+ B, C' X* j: e* r
如果我们有了达到甚至超越人类的人工智能,她们会不会是个有趣的家伙。通过二进制,做出会下棋的软件没什么问题,只是,通过二进制,能不能模拟出含情脉脉的眼神。这件事情,我经常纠结。而且也一直没有答案。
& D# ?- Q. L. V0 p  W# L6 c
; z/ Z/ Z& L; I+ ]反正,我现在碰到有人自称是搞人工智能和大数据的,我一般认为这个人是个骗子,对这两个行业的人,我狭隘的思想就是对他们做有罪推定。尤其是现在经常会出“中国人工智能创新百人榜”和“中国大数据创新百人榜”,然后上面列出100个牛人,让我想起了武侠小说里的平湖百晓生弄的那个《兵器谱》,非常的不靠谱,兵器谱排名靠前的,都是被排名靠后的给弄死了。% {% A$ u" Y$ |

! Y9 z  a, w7 i8 J; b2 S+ L& [


0猫小蛮0 「初入古黑」 2020-3-31 20:03 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

作为新人,在论坛不敢大声说话,也不敢得罪人,只能默默地顶完贴转身就走,不求深藏功与名,只求前排混脸熟
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-11-1 08:51 , Processed in 0.040545 second(s), 23 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表