我问你:你是我的Master吗? 收藏本站
登陆 / 注册 搜索

阅读: 264   回复: 1

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

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

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

主题破百
十万人都在学习的网络安全知识
作者|刘栋梁,微信公众号|软件那些事儿0 L$ W4 D: y- h* {, x( o% b

$ \. ]3 \2 E6 W& V2 A9 F/ g2 r一、二进制0 U0 V$ F! b" ?+ O
# T- J# Y* j$ X! e) D
只要是学习计算机的,或者不学习计算机的,都一定听说过二进制这个词语。什么逢二进一,反正感觉不像人话,也听不懂。不管懂不懂呢,大家基本都认识到了二进制的巨大威力,并且也知道了这样一个笑话,世界上有10种人,一种懂二进制,一种不懂二进制。所以,这一次,我想讲讲二进制的一些故事。
3 u( n" X' p& ?. }2 ~
1 v* E! X/ J  E: A6 W7 C! J
计算机原理(二进制) shutterstock_1141880129.jpg
+ J0 Z4 b$ C/ T- Q
在正式讲二进制之前,我先来说说二维码。
4 E2 z3 m  @1 U( `* G- q/ o& n
+ x/ w9 u' D! X6 E2 g5 M二、二维码$ W: ?8 j; l& l6 s0 W

* Y4 t) z) i7 u1 {3 y. N) |) {) ~/ X自从手机时代以后,每个人都难免要扫一扫二维码。什么是二维码呢?简单来说,二维就是平面,码就是code的意思,编码。二维码就是在平面方向上一个黑白相间的图形。
6 K3 J% b- C/ ~$ t6 T1 ?1 H* ?0 y7 D( R2 b
计算机原理(二进制) QR_code_for_mobile_English_Wikipedia.svg.png

7 [4 z5 y9 b( b) F/ k1 t+ k) t; J! e比如说,我们经常使用的微信的二维码就是其中的一种,也是最流行的一种二维码,叫做矩阵式二维码。这个二维码上有三个最大的色块,就是角上那三个最大的色块,是用来定位的,这样就不怕扫描二维码的时候,手机拿偏了,导致信息扫描不出来。5 z( b, r3 |/ V5 m8 b
2 L" E) C1 q6 u! r7 m8 ]6 s, z
矩阵二维码有很多版本,在这里只讲version 1, 一个21×21的矩阵。二维码有40个尺寸,每一个尺寸增加4,也就是说version 2是25×25,最大的尺寸是21+(40-1)*4 = 177,最大的尺寸就是177 X 177个小格子。可以把这个想象成围棋的棋盘。对二维码进行编码就是把这个棋盘涂成黑白两种颜色。其中当然包括很多其它的技术细节,我只讲几个技术细节,首先讲纠错码。. y( B0 p! c1 _

4 G% L) t+ e$ o7 Y, u( r5 d在我们常见的二维码中,分为四种级别的纠错码,分别是LMQH四种级别。L 级别是7%的字码可修改,M级别是15%的字码可修改,Q级别是25%的字码可修改,H级别是30%的字码可修改。所以,二维码破损也可以被识别。很多人在二维码上加上自己的头像。二维码纠错的算法是Reed-Solomon error correction(里德•所罗门纠错算法),比较复杂,纯数学。然后再将这数据和纠错码交替放在一起,最后一步才是填充最后的编码。' S# l" T8 G8 a' F  ^  O

  U+ E" q* O' z* e  d0 {填充的过程是从左下角开始填充,黑色代表1,白色代表0,如果碰到非数据区,就绕开或者跳过,最后,就生成二维码的图片。生成以后,如果二维码出现大面积的空白或者黑色,扫描起来会更困难。所以,最后填充的图片还要经过一个操作,叫Masking(化妆)。QR里面有8个不同的图形供大家选择,这8个图像黑白分布非常均匀,因此,还要把最终生成的图像和这8个提供的mask图像做一个XOR操作。这个Mask操作只和数据区进行操作,不会影响功能区。所以我们看到的二维码,不会出现大片连续的黑色或者大片连续的白色。' c, y! B$ M7 E7 ]+ H. o

! ~0 D& B6 a1 J' h6 z我为什么讲二维码呢?因为二维码可能是目前我们用眼睛看到的,用的最多的一种二进制。黑色的代表1,白色的代表0。计算机中就是使用二进制。
/ c, _0 J: W, H" h- O% J$ L2 L0 s0 ~% O, R) b; H  d2 B
三、十进制
$ R( A( {( ^4 s) T( Y# i
/ L, K4 V" C2 J1 @不管我们是去日本还是去美国,可能其它的文字看不懂,但是去超市的话,有一个东西一定看得懂,就是数字。从0-9这十个数字,不管哪个国家,都是使用这个方式来写数字,除了一些美洲的印第安人部落可能使用其它的计数方式。可以说,阿拉伯数字是最通用的语言。这0-9的十个数字是人类广泛使用的计数体系。据说,十进制在5000多年以前就出现在古埃及了,中国也考证说在殷墟里的甲骨文上也发现了十进制,大约3000多年以前。具体是不是真的,我不知道。
2 U5 Y* y1 L, q4 L% A$ r
4 g9 x) g0 \1 s! y9 U有个说法是,因为人有十根手指,所以才使用十进制,如果青蛙来计数的话,可能是8进制,因为青蛙可能是有四根手指头,我从网上搜了几张图片看了一下,感觉是四根手指头。当然了,我不懂生物学,只是个程序员,闷声写代码,如果说错了,不要笑我太简单太幼稚。如果青蛙会认识数字的话,应该也是数手指头,可能会用8进制,所以,以后如果青蛙开始制造电脑,天生使用八进制,应该是个非常大的优势。6 {* ?! g0 ]0 M; L& r  L" y
$ W: t% p; F8 H4 E; K; W
四、算盘
  j( U5 D' {! B8 q1 k' ]* D; `
4 k" W" w8 N8 e% \3 p算盘这个东西,我们这里有意无意的暗示,这玩意是中国发明的,而且算盘和计算机有莫大的关系。这么说也不算错,中国算盘确实是中国发明的,但是这个世界上存在各种各样的算盘,有巴比伦算盘,有古希腊算盘,有古罗马算盘,样子都差不多。都是使用一些小球球来计数,中国的算盘其实是宋朝末期,元朝初期才开始大规模流行。在此之前使用的方法是算筹,这玩意也很先进,有兴趣的可以研究一下,算筹这个从周朝,汉朝就大规模使用了,就是用一些木棍就能计算。3 V- o, p5 D5 V

7 d/ @% N4 v0 i& ^$ }; ]8 ]% R
计算机原理(二进制) Replica_of_Han_Dynasty_Counting_rods_in_National_Museum_of_Natural_Science_in_Taiwan.jpg
, o& d  `) `1 M  P
我们古代的算盘是上面两个珠子,下面五个珠子。如果用这种算盘来计数十进制的话,有两个珠子永远都用不到,所以,日本的算盘是上面一个珠子,下面四个珠子,我们中国现在的算盘,基本上也是日本算盘的样子,当然,现在都用计算器了。现在很少见到有人用算盘了。我看过一篇文章,因为中国有一个成语叫“半斤八两”,那篇文章里说,中国古代的算盘其实是计算十六进制的,如果那篇文章是正确的,那就能解释为啥中国古代算盘是上面两个珠子,下面5个珠子,因为这样,正好是十六进制中的最大的数15,而中国古代,16两算一斤,不是现在的10两算一斤。我个人认为这个说法是靠谱的。1 \/ U9 ~# L! p
& b1 m, K  _& m) g
算盘虽然不用了,但是,我们可以通过算盘来理解进位的概念。我们以上面一个珠子,下面四个珠子的日本算盘为例。
3 _' r& e8 m$ _; ?0 U
6 B& ^. X) Q! Z/ E9 c% m) X* C
计算机原理(二进制) unnamed.jpg
* N) k/ V, |! U/ r" G. }5 C7 m' [8 `
当我们要输入9的时候,在最后面的一栏,使用上面一个珠子,下面四个珠子,如果输入数字10,只能使用倒数第二位的一个珠子,也就是所谓的逢9进1。如果我们使用二进制算盘,每一栏只需要一个珠子,因此,只要表示超过数字1,就进一位。所以,当有进位的困扰的时候,心里想一下算盘就好了。6 p- ^5 v( n' [

4 D$ B6 w7 e& f1 U二进制对计算机来说,尤其是我做的这个系列,使用继电器来构造一个计算机,只要有电流通过就是1,没有电流通过就是0。因此,这样对计算机来说,使用二进制很简单,但是,对人类来说,二进制的长度太长了,增加的速度太快,并不容易读,为了解决这个问题,每四个二进制组成一组,这样可以组成八进制或者十六进制,从某种意义上来说,八进制和十六进制,纯粹是为了满足人类的可读性,对计算机来说,都是二进制。
4 M# E, ]2 c! E7 N+ b
: \8 o! c: O- t, v在1950年左右,一个美国数学家意识到二进制的重要性,这个数学家的名字叫约翰•威尔德•特克,他决定给二进制起一个名字,在此之前二进制的英文单词是binary digit。这是两个单词,这个数学家想起一个更短一点的名字,在选定了好几个名字以后,最终选择了bit这个单词,这个单词只要三个字母,最终也证明了这个数学家的眼光,bit这个单词可以入选上世纪最重要的单词之一。另外,也有人说这个名字是信息论的提出者香农命名的bit,这两种说法都有,我也不知道哪个是真的,所以,留给有考据癖的各位自己去考据吧,考据好了,告诉我一声。
# G; ?3 I1 H# R- S& W9 g
) p2 L5 x4 J% v  v4 n五、bit的意义0 e0 _4 J& I% ?1 g4 e: [# A! }9 w) N
' Y" x$ F0 E2 x3 h; V
bit到底有什么意义呢?当我们发明一个单词的时候,通常要有某个特殊的意义。在计算机中,比特的意义是信息的最小单位,1比特在计算机中是最小的信息量,也就是说,在计算机上,我们不能传播小于1比特的信息。比特传播的信息非常小,如果要传播更多的信息,就需要更多的比特。
2 e) P4 p6 O; u# `* a+ G% _& C  i& N* b; M+ b9 A
那什么是信息呢?你追个女朋友,她答应或者不答应是一种信息;今天有雾霾或者没有雾霾也是一种信息;这种信息是可以通过计算机传播的,因为这种信息是非此即彼。还要一种信息是没法通过计算机来传播的,尤其是情绪,比如说,女朋友今天的心情,你说好吧,又不太好,你说不好吧,又还可以。
1 O8 o5 @0 H- a' g
% k7 G! \1 ]" n( b7 h这种信息不是非此即彼的,电脑中无法表示这种状态,女朋友的脾气嘛,一会儿好,一会儿坏。这种信息对我们人类至关重要,但是,使用计算机的确非常难以表示这种状态。所以,至今为止,不管人工智能如何发展,我们人类还是没有和计算机建立起某些浪漫的关系。因为二进制的计算机目前只能表示出来确定的状态,不会撒娇,所以,一点也不可爱。) v  m/ ]6 K6 i
' K; h+ f4 M+ O$ U# v  v7 l
也就是说,如果我们无法使用文字,图画或者声音来表示某种事物或者信息,那么我们也没办法用计算机表示出这种信息。比如说,你犯了错误,你女朋友一个犀利的眼神,让你后背发凉,这个犀利的眼神,无法用文字,也无法用语言,更无法用图片表示出来,这种的确存在,而又尽在不言中的信息,计算机无法搞定。8 I/ y# @% S2 R
# {. `# U+ d( K& E3 D  D4 s9 L
所以,我对人工智能在某些特定的领域超过人类,没有任何怀疑,如果说人工智能全方位超过人类,我是有怀疑的。计算机在一些确定的领域,尤其是非黑即白的领域,比如围棋,象棋领域,还有一些游戏领域,比如说踢FIFA足球游戏,如果调成难度很高的话,实际上很难赢电脑,这也算是人工智能的一种。只是电脑踢球能赢了人类,没引起关注,由于围棋以及Google的阿尔法狗才觉得人工智能要翻天了。
4 P) k: Z, c8 I  b8 [$ M1 t
1 i8 e7 {8 t0 p2 e六、人工智能. y7 o% `8 [' P: {0 ^( E! }. v$ B) S

& U# Y/ f) q/ _) ^8 G9 I既然谈到这里,我就多说一点人工智能,显然今天说这个话题,有点落伍,因为Google的AlphaGo以及不是热点了。其实Google的AlphaGo是收购的一个公司,这个公司叫DeepMind公司,是搞深度学习的。深度学习也不算特别前沿的科技,他有一个名字叫人工神经网络,如果年龄比较大的话,肯定听说过这个名字,人工神经网络,一个被抛弃冷落了很多年的技术。. r/ ~3 K0 c  m4 e; u
# d+ l1 S% j' }; s6 @
这个人工神经网络技术在80年代是热点,90年代被各大研究机构以及各个大学抛弃。所以,正经的名牌大学,根本不怎么研究这玩意。因此,现在人工神经网络改名叫机器学习以后,并且突然热门以后,我们就会发现一个神奇的现象,最热门的热点,不是在美国,而是在加拿大,比如多伦多大学,蒙特利尔大学,这些游离与著名与非著名大学的那种学校,主要的那些著名大学,根本没有研究这种东西的,感觉落后了啊。
# b# e& b% o( {9 `
4 q% j- P* ?1 a' h  n: S1 B" Q" U让人工神经网络咸鱼翻身的转折点是一篇论文,主要是用来识别手写字母的,当时主流算法的准确率是98.6%,然后一个计算机科学家使用深度置信网络,这是一种神经网络,把准确率提高到98.75%,一下子就超过了主流的SVM算法,然后大家才又开始关注人工神经网络。现在人工神经网络已经在语音识别,包括苹果的siri还有微软的小冰,亚马逊的echo,这些都是深度学习,还有图像识别等领域大放异彩。* I  ]. u8 P1 \& {; U2 i
+ @1 C% c/ t; [/ ?! J, F
以后怎么样,我当然肯定是不知道的,搞不好某一天被某个算法拉下马也是很有可能的。比较深度学习就是这么被冷落了十几年,突然又开始红起来的。0 `) V- r$ j$ ~- L  P6 O! P. ^

+ l" d% g) [! Z+ _1 r& d, n七、我的一些胡思乱想  y0 j0 S( m: ~7 f9 f8 O5 [

  r2 ]  b. `+ h7 f, x9 ^人工智能这个东西,我其实一直很关注的。人类这个物种,其实所有人的预测都不怎么准,唯一能提高命中次数的方法就是每天多预测几个事情,然后总有一个两个能预测准确,瞎猫碰到死耗子也能蒙对几个。暂时我们先不管人工智能,先看看其它的领域,都是科学领域吧。& a! J6 m* F6 ~5 c8 x# Y% J3 W

9 M& y) _0 g6 }9 e7 S; I上个世纪,人类造出了原子弹,还把人送到月球上,然后乐观的预测家就说,再过50年,核能驱动的汽车满大街跑,50年内火星上移民不是梦。悲观的预测家则另外一套说辞,完蛋了,练核弹都造出来了,第三次世界大战肯定是互相扔核弹,人类肯定要灭绝了。现在早就超过50年过去了,我们再来看看这两个阵营的预测,都错的十万八千里。
3 G4 ]5 z5 S  Q+ M
$ r( j5 b2 z" L5 F: O0 f) D乐观者说的核动力汽车满大街跑的景象肯定没出现,别说核动力汽车,我们现在造个汽车,还断轴,不是前轴断就是后轴断,还得弄一块铁板,打个补丁来解决问题。悲观者说世界末日来了,其实人类就使用了两次核弹,都给了日本。如果想灭绝人类,估计还得靠老朋友金三胖,这个最有出息的80后每天就知道放炮打炮。0 O) A5 F6 @' {1 e( L

: O! u, n/ ^' n2 D/ L1 V9 S* M同样是上个世纪,物理学突飞猛进,一个接一个的理论接踵而至,相对论量子力学一个接一个的出现,乐观者也是很高兴的预测,大统一理论近在咫尺了,结果现在也没搞定。去年还是前年,有个荷兰的科学家提出了墒增理论来加强爱因斯坦的广义相对论,至于这个理论正确不正确我不知道,起码证明了目前还没有搞定大统一理论,预言家又再次乐观过头了。% Q+ e! P. c0 o+ n6 F0 q2 b

( q; l. t. l* n* n) T! ]墒增理论很神奇,墒永远都是增大的,永远增大,不会减小,这个广告词可以当男科医院的广告词,墒增男科医院,永远变大,不会缩小。以后有钱了,我打算注册一个男科医院,就叫墒增男科医院。
! K% O: g( D/ p, E
' o4 o- N6 {; {2 m7 b. o/ A换到人工智能这个方面,乐观者说,马上了,奇点临近,人类赶紧准备准备后事,马上就没有人类啥事儿了。这个观点现在是主流观点,因为这个观点很吓人,尤其是国外有个博客叫wait buy why,这个博客上写了关于人工智能的一篇文章,然后我觉得国内基本上所有的观点都是这篇博客还有《奇点临近》那本书里的。1 q: q. ]  o/ ?; E

7 G2 B: `  l* K. M% t. f这个是主流的观点,就是人工智能马上超越人类。我个人觉得,不能太乐观啊。因为核能汽车我们没有见过,再过50年也够呛。大统一理论我们也看不到,其实物理领域,已经差不多停滞了五六十年了,还是不要太乐观的好,最被看好弦理论也没啥突破性的发展。最近看新闻说,谷歌公司的无人驾驶汽车项目已经接近取消了,按照谷歌一贯的原则,很多都是宣传的天花乱坠,最后搞的不声不响就砍掉,比如谷歌眼眼镜,还有组装汽车项目,还有通过气球上网项目,还有每一两年出一个聊天软件项目,最近的最震撼的就是谷歌的自动驾驶项目。* V$ v: {# W0 A/ {( K
% R5 u8 S* S; v7 Z0 v/ N, e
要知道,谷歌当时宣传的,以及很多媒体跟风的,说这玩意比人开的好,显然,应该是没达到目的。否则,干嘛不量产,而是选择取消项目呢?只留下乐视自动驾驶汽车一路狂奔了…
8 j/ h" D4 l& \% U* S/ e( W
$ k6 J( `" Z8 X+ G# q如果我们有了达到甚至超越人类的人工智能,她们会不会是个有趣的家伙。通过二进制,做出会下棋的软件没什么问题,只是,通过二进制,能不能模拟出含情脉脉的眼神。这件事情,我经常纠结。而且也一直没有答案。
) I$ J( l% M1 F; `3 U# U9 G4 p; F' }1 [8 e) B2 n6 E
反正,我现在碰到有人自称是搞人工智能和大数据的,我一般认为这个人是个骗子,对这两个行业的人,我狭隘的思想就是对他们做有罪推定。尤其是现在经常会出“中国人工智能创新百人榜”和“中国大数据创新百人榜”,然后上面列出100个牛人,让我想起了武侠小说里的平湖百晓生弄的那个《兵器谱》,非常的不靠谱,兵器谱排名靠前的,都是被排名靠后的给弄死了。
4 c+ |* u$ Z/ I4 L. g* ?2 [" I7 R5 {5 m1 c- M


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

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

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

本版积分规则

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

GMT+8, 2020-5-28 11:59 , Processed in 0.026828 second(s), 21 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表