【计算机科学速成课】[40集全/文字版] - 4.二进制

嗨,欢迎阅读计算机科学速成课!

今天,我们讲计算机如何存储和表示数字,所以会有一些数学,不过别担心,你们的数学水平绝对够用了。

上集我们讲了,怎么用晶体管做逻辑门,逻辑门可以判断布尔语句,布尔代数只有两个值:True和False,但如果只有两个值,我们怎么表达更多东西?这就需要数学了。上集提到,1个二进制值可以代表1个数,我们可以把真和假 ,当做1和0。如果想表示更多东西,加位数就行了,和我们熟悉的十进制一样,十进制只有10个数(0到9)要表示大于9的数,加位数就行了,二进制也可以这样玩。

拿263举例,这个数字"实际"代表什么?2 个100和6个10还有3个1,加在一起,就是263。注意每列有不同的乘数,100,10,1每个乘数都比右边大十倍。因为每列有10个可能的数字(0到9),如果超过9,要在下一列进 1。因此叫"基于十的表示法"或十进制,二进制也一样,只不过是基于2而已。因为二进制只有两个可能的数,1和0,意味着每个乘数必须是右侧乘数的两倍,就不是之前的100,10,1而是4,2,1,拿二进制数101举例,意味着有1个4,0个2,1个1。加在一起,得到十进制的5,为了表示更大的数字,二进制需要更多位数,拿二进制数10110111举例。我们可以用相同的方法转成十进制,1x128,0x64,1x32,1x16,0x8,1x4,1x2,1x1,加起来等于183。二进制数的计算也不难,以十进制数183加19举例,首先3+9,得到12,然后位数记作2,向前进1,现在算8+1+1=10,所以位数记作0,再向前进1,最后1+1=2,位数记作2,所以和是202。

二进制也一样,和之前一样,从个位开始,1+1=2,在二进制中也是如此。但二进制中没有2,所以位数记作0,进1,就像十进制的例子一样,1+1,再加上进位的1,等于3,用二进制表示是11,所以位数记作1,再进1,以此类推。最后得到这个数字,跟十进制202是一样的,二进制中,一个1或0叫一"位",上个例子我们用了8位,8位能表示的最小数是0,8位都是0。最大数是255,8位都是1,能表示256个不同的值,2的8次方,你可能听过8位机,8位图像,8位音乐。意思是计算机里大部分操作都是8位8位这样处理的,但256个值不算多,意味着8位游戏只能用256种颜色。

8位是如此常见,以至于有专门的名字:字节。1字节=8位(1bytes=8bits),如果有10个字节,意味着有80位,你听过千字节(KB)兆字节(MB)千兆字节(GB)等等...不同前缀代表不同数量级,就像1千克=1000克,1千字节=1000字节。或8000位。Mega是百万字节(MB),Giga是十亿字节(GB),如今你可能有1TB的硬盘,8万亿个1和0,等等,我们有另一种计算方法。

二进制里,1千字节=2的10次方=1024字节,1000也是千字节(KB)的正确单位,1000和1024都对,你可能听过32位或64位计算机,你现在用的电脑几乎肯定是其中一种。意思是一块块处理数据,每块是32位或64位,这可是很多位,32位能表示的最大数,是43亿左右。也就是32个1,所以Instagram照片很清晰,它们有上百万种颜色。因为如今都用32位颜色,当然,不是所有数都是正数,比如我上大学时的银行账户T_T,我们需要有方法表示正数和负数,大部分计算机用第一位表示正负:1是负,0是正。用剩下31位来表示符号外的数值,能表示的数的范围大约是正20亿到负20亿,虽然是很大的数,但许多情况下还不够用,全球有70亿人口,***近20万亿美元。

所以64位数很有用,64位能表达最大数大约是9.2×10^18,希望***在一段时间内不会超过这个数!重要的是(我们之后的视频会深入讲)计算机必须给内存中每一个位置,做一个"标记",这个标记叫"地址",目的是为了方便存取数据,如今硬盘已经增长到GB和TB,上万亿个字节!内存地址也应该有64位,除了负数和正数,计算机也要处理非整数,比如12.7和3.14,或"星历43989.1"。这叫浮点数,因为小数点可以在数字间浮动,有好几种方法表示浮点数,最常见的是IEEE754标准。

你以为只有历史学家取名很烂吗?它用类似科学计数法的方法,来存十进制值,例如,625.9可以写成0.6259×10^3,这里有两个重要的数:.6259叫"有效位数",3是指数,在32位浮点数中,第1位表示数的符号-正或负,接下来8位存指数,剩下23位存有效位数,好了,聊够数了,但你的名字是字母组成的,所以我们也要表示文字。

与其用特殊方式来表示字母计算机可以用数表示字母,最直接的方法是给字母编号:A是1,B是2,C是3,以此类推。著名英国作家弗朗西斯·培根(FrancisBacon)曾用5位序列来编码英文的26个字母,在十六世纪传递机密信件,五位(bit)可以存32个可能值(2^5)-这对26个字母够了,但不能表示标点符号,数字和大小写字母,ASCII,美国信息交换标准代码,发明于1963年,ASCII是7位代码,足够存128个不同值,范围扩大之后,可以表示大写字母,小写字母,数字0到9,@这样的符号,以及标点符号。

举例,小写字母a用数字97表示,大写字母A是65,:是58,)是41。ASCII甚至有特殊命令符号,比如换行符,用来告诉计算机换行,在老计算机系统中,如果没换行符,文字会超出屏幕,因为ASCII是个很早的标准,所以它被广泛使用。

让不同公司制作的计算机,能互相交换数据,这种通用交换信息的能力叫"互操作性"。但有个限制:它是为英语设计的,幸运的是,一个字节有8位,而不是7位,128到255的字符渐渐变得常用。这些字符以前是空的,是给各个国家自己"保留使用的",在美国,这些额外的数字主要用于编码附加符号,比如数学符号,图形元素和常用的重音字符,另一方面,虽然拉丁字符被普遍使用,在俄罗斯,他们用这些额外的字符表示西里尔字符。而希腊电脑用希腊字母,等等,这些保留下来给每个国家自己安排的空位,对大部分国家都够用,问题是,如果在土耳其电脑上打开拉脱维亚语写的电子邮件,会显示乱码。

随着计算机在亚洲兴起,这种做法彻底失效了,中文和日文这样的语言有数千个字符,根本没办法用8位来表示所有字符!为了解决这个问题,每个国家都发明了多字节编码方案,但相互不兼容,日本人总是碰到编码问题,以至于专门有词来称呼:"mojibake"意思是乱码,所以Unicode诞生了-统一所有编码的标准。设计于1992年,解决了不同国家不同标准的问题。Unicode用一个统一编码方案,最常见的Unicode是16位的,有超过一百万个位置,对所有语言的每个字符都够了,100多种字母表加起来占了12万个位置。还有位置放数学符号,甚至Emoji,就像ASCII用二进制来表示字母一样,其他格式-比如MP3或GIF-。用二进制编码声音/颜色,表示照片,电影,音乐,重要的是,这些标准归根到底是一长串位,短信,这个文章,互联网上的每个网页,甚至操作系统,只不过是一长串1和0

内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
在无线通信领域,天线阵列设计对于信号传播方向和覆盖范围的优化至关重要。本题要求设计一个广播电台的天线布局,形成特定的水平面波瓣图,即在东北方向实现最大辐射强度,在正东到正北的90°范围内辐射衰减最小且无零点;而在其余270°范围内允许出现零点,且正西和西南方向必须为零。为此,设计了一个由4个铅垂铁塔组成的阵列,各铁塔上的电流幅度相等,相位关系可自由调整,几何布置和间距不受限制。设计过程如下: 第一步:构建初级波瓣图 选取南北方向上的两个点源,间距为0.2λ(λ为电磁波波长),形成一个端射阵。通过调整相位差,使正南方向的辐射为零,计算得到初始相位差δ=252°。为了满足西南方向零辐射的要求,整体相位再偏移45°,得到初级波瓣图的表达式为E1=cos(36°cos(φ+45°)+126°)。 第二步:构建次级波瓣图 再选取一个点源位于正北方向,另一个点源位于西南方向,间距为0.4λ。调整相位差使西南方向的辐射为零,计算得到相位差δ=280°。同样整体偏移45°,得到次级波瓣图的表达式为E2=cos(72°cos(φ+45°)+140°)。 最终组合: 将初级波瓣图E1和次级波瓣图E2相乘,得到总阵的波瓣图E=E1×E2=cos(36°cos(φ+45°)+126°)×cos(72°cos(φ+45°)+140°)。通过编程实现计算并绘制波瓣图,可以看到三个阶段的波瓣图分别对应初级波瓣、次级波瓣和总波瓣,最终得到满足广播电台需求的总波瓣图。实验代码使用MATLAB编写,利用polar函数在极坐标下绘制波瓣图,并通过subplot分块显示不同阶段的波瓣图。这种设计方法体现了天线阵列设计的基本原理,即通过调整天线间的相对位置和相位关系,控制电磁波的辐射方向和强度,以满足特定的覆盖需求。这种设计在雷达、卫星通信和移动通信基站等无线通信系统中得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值