二进制:存储 / 运算 / 底层实现

更多
2021年03月06日 19点55分 作者:叶飞 修改

问:计算机不是用来上网聊天打游戏的么?和计算有啥关系?


数字化

上网聊天打游戏,分拆一下,我们用到的其实就是:文字/图片/音视频……

计算机把这些所有的内容都转换成数字,就是所谓的数字化。转换成数字的内容就可以被称之为数据

数据就可以用于计算。

而且,计算机除了进行数值/学计算(加减乘除,比如3+2-5),还可以进行逻辑计算,比如:

  • 判断:等于、大于、小于,以及由此衍生出来的:包含、以xxx开头/结尾、在xxx区间……,结果为或者
  • 基于真假,再次进计算:
    • 取反(真变假/假变真):飞哥的《野生程序猿:优先招聘》,要求 不是 计算机专业
    • 或(多个条件满足一个):招聘启事,精通SQL Sever MySQL
    • 且(多个条件都要满足):丈母娘的条件,有车有房

所以我们要从一个更大的概念上理解:数据和计算。

以上两点,也就是计算器和计算机的区别。


IT和计算机

很多人会把 IT 等同于 计算机/互联网。

实际上,IT(Information Technology)本义就是信息技术。严格来说,信息(information)的概念比数据(Data)要广。

信息不一定是数据,比如:

  • 用纸写的一封信、老式的照片、磁带里面的一段对话,都是信息,
  • 但这些信息没有被“数字化”,只有我们的信/照片/对话被用数字形式存储到计算机之后,他们才被称之为数据。

逸闻史话:模拟/数字计算机

只是现在信息的处理(存储、传输、检索……)几乎全部都是由计算机完成,所以我们才将IT和计算机混为一谈。


@想一想@:上网聊天打游戏时,计算机进行了哪些 数据操作 和 计算工作?

  • 数据传输:登录 / 浏览 / 聊天 (网络传输)
  • 比较判断:登录(用户名和密码:用户输入和服务器存储是否一致) / 击中
  • 加减:掉血 / 积分 / ……


数据格式:二进制

计算机底层(包括计算机网络中)所有的数据都以二进制形式存储和传输:万物皆0,1

二进制是现代计算机的基石,也是冯·诺依曼结构的重要组成一部分。

“二进制”简单的说,就是:逢二进位。

对比理解:

  • 十进制:逢十进位,数字只有0-9,没有十,十要用1和0组合表示:10
  • 二进制:逢二进位,数字只有0和1,没有 二,二也要用1和0组合表示:10
所以,@想一想@:二进制中1+1=?

其他进制:半斤八两(16进制),小时/分钟(60进制)……

其中,在计算机科学中用16进制也比较常见(16=2^4),方法是从十开始,依次用ABCDEF表示十到十六。


为什么选择二进制?

地摊文学:受到了阴阳太极的启发,1代表阳,0代表阴……

我看到一种说法:腓尼基的水手会用二进制计算货物……

实际上,主要是因为便于机器——尤其是电子设备——进行存储/运算。

首先,存储简单。比如:

  • 打孔卡片/纸带:有孔0,无孔1
  • 电路:通电1,断电0

@想一想@:10进制你怎么记录23456789?(转筒/尺子)

然而,运算简单。十进制你得教会机器99加法表,但二进制只需要:

  • 0+0=0
  • 1+0=1
  • 1+1=10

就可以了(这还是把0都给包含进来了)。

最后,二进制还可以非常方便的进行逻辑运算。比如:1代表真,0代表假;然后,也能很方便的进行控制:

  • 一个开/关:真/假
  • 两个开关串联:且
  • 两个开关并联:

这种电路就被称之为门电路用以实现基本和复合逻辑运算的单元电路。

实际上,包括加减乘除,都是由门电路实现的。(仅需了解)


名词理解

现在我们就可以来捋一捋了:

  • 为什么芯片被称之为集成电路
  • 为什么芯片产业又被称之为半导体产业:断电通电靠“半导体”:既(不)是导体,也(不)是绝缘体的这一类物质。
  • 什么是碳基(人类)文明,什么是基(计算机)生物?目前使用的半导体材料就是硅(+磷/硼)。


十进制二进制转换

本节内容仅供小白面试使用,^_^


二转十

比如:100101,首先将其拆成:

+100000(2^5=32)
+000100(2^2=4)
+000001(2^0=1)
------------
=100101(37)

体会:986 = 900+80+6 = (9x10^2)+(8x10^1)+(6x10^0)


十转二

如果数字小,比如:88,可以用“二转十”的逆运算:88=64+16+8=2^6+2^4+2^3,所以结果为:1011000

如果数字大,可以用除2取余,逆序排列法。

88/2=44...0
44/2=22...0
22/2=11...0
11/2=5 ...1
5/2=2  ...1
2/2=1  ...0
1/2=0  ...1

演示:平时开发,用程序员计算器


存储容量单位

比如你的硬盘500个G,能装500个G的数据,啥意思呢?

存储在计算机中的二进制数据,就这个模样:

10101010101011111101001010010000000101010101010101010所以我们有时候也用“长度”来表示数据的大小。

  • 每1个数字就占1位(bit,简写b),所以可以说:16/32位的整型数据……
  • 每8位数字就是1个字节(Byte,B,注意大小写)
对于更大的数据:
  • 每1000(或1024=2^10)个字节就是1千字节(KB)
  • 每1000个千字节就是1兆(千)字节(MB,简称兆,简写M),
    注意:还有一个Mb(小写b)通常是我们在办宽带的时候不良商家宣传用的,表示1024位(bit),所以你100Mb带宽最后下载速度只有100/8=12.5MB了,^_^
  • 每1000M就是1G
  • 每1000G就是1T


作业

  1. 除了课堂上讲到的2/10/16/60进制,你还能想到生活中出现的其他进制么?
  2. 张三找程序员李四借1000块钱,李四说:“给你1024吧,凑个整”。这啥意思啊?
二进制 图像 门电路
赞: 4 踩: 3

打赏
已收到打赏的 帮帮币

你的 打赏 非常重要!
为了保证文章的质量,每一篇文章的发布,都已经消耗了作者 1 枚 帮帮币
没有“帮帮币”,作者无法发布新的文章。

全系列阅读
评论 / 0

编程基础


项目管理相关

需求发布、开发规划、部署、测试,源代码版本管理(git)等……

逸闻史话

认识计算机

编程语言

数据结构和算法

Web开发基础

全部
关键字



帮助

反馈