为什么计算机使用二进制,你知道吗?

在这里插入图片描述

大家好,我是小周,今天给大家分享的是相对比较底层的二进制,全程干货满满,如果你觉得本文写的不错,还请一键三联支持博主呀,你的支持就是我不断创作的动力 😆

在这里插入图片描述


十进制

十进制相信大家都烂熟于心了,十进制是以10为底数的数字系统,逢十进位 ,在十进制的世界里,0,1,2,3,4,5,6,7,8,9,10 这个数字其实就是进位后得到的

在这里插入图片描述
比如十进制下的 1124 可以表示为以10为基数的 1 x 103 + 1 x 102 + 2 x 101 + 4 x 100

在这里插入图片描述

二进制

二进制(binary)以 2 为基数代表系统是二进位制的, 逢二进位 ,这一系统中,通常用两个不同的数字 01 来表示。数字电子电路中,逻辑门直接采用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制,每个数字称为一个比特(二进制位)或比特(Bit,Binary digit 的缩写)

在这里插入图片描述
二进制的 100011 在十进制中表示多少呢?

在这里插入图片描述

计算机为什么使用二进制?

计算机是由逻辑电路组成的,电路中通常只有两个状态,开关的接通断开, 这两种状态正好可以用 "1" "0" 表示,计算机在表示数的时候,会使用以下两种状态

开关切断状态 ============ 0
开关连通状态 ============ 1

1个开关可以用0或1来表示,如果有许多开关,就可以表示为许多个0或1,你可以想象这里排列着许多开关,各个开关分别表示2进制中的各个位。这样一来,只要增加开关的个数,不管是多大的数字都能表示出来

电脑是由集成电路组成的,这些集成电路可以看成是一个个门电路组成,(当然事实上没有这么简单的),计算机工作时电路通电工作,每个输出端就有了电压。电压的高低通过模数转换即转换成了二进制:高电平是由1表示,低电平由0表示。也就是说将模拟电路转换成数字电路,这里的高电平与低电平可以人为确定,一般,将2.5伏以下即为低电平,3.2伏以上为高电平。

当然,做成能够表示0~9这10种状态的开关,进而让计算机釆用10进制计数法,理论上也是可能的,但与 0 和 1 的开关相比,10进制必定有更复杂的结构。

二进制下的加法表

在这里插入图片描述

比起10进制,2进制的位数会增加许多,这是它的缺点。例如10进制下的 2022 只有 4 位,而在2进制下要表示同样的数则需要 11111100110 共 11 位数字

人们觉得10进制比2进制更容易处理,是因为10进制计数法的位数少,计算起来不容易发生错误。此外,比起2进制,釆用10进制能够简单地通过直觉判断出数值的大小。人们的两手加起来共有10个指头,小时候学习算数就是这样,哈哈,这也是10进制让人们觉得更容易理解的原因之一

不过,因为计算机的计算速度非常快,位数再多也没有关系。而且计算机不会像人类那样发生计算错误的问题,对于计算机来说,处理的数字种类少、 计算规则简单就最好的

鉴于上述原因,计算机最终釆用了2进制计数法。 人类使用10进制计数法,而计算机使用2进制计数法,因此计算机在执行人类发出的指令时,会先进行10进制和2进制间的转换,计算机先将10进制转换为2进制以便于读取,用2进制进行计算,再将所得的2进制计算结果转换为人类能直观理解的10进制

二进制的实现方式

二进制的实现方式有很多,这里举一些例子,帮助小伙伴扩展点知识

早期打孔纸带

使用在纸带上打孔,有孔记作1,没孔记作0,规定下来,进行记录
在这里插入图片描述
光盘

光盘想要使用必须先进行刻录,简单理解就是在平整的面上刻出一些凹槽,有凹槽的地方反光弱,没有凹槽的地方反光强,假设我们规定反光强代表1,反光弱代表0,有朋友可能会问,我怎么没有看到凹槽啊,我觉得可能是原因1:使用刻录的仪器对精度要求高,肉眼基本观察不到,原因2:为了保护光盘,是的光盘更耐用,在刻录完成后再表面又覆盖了平整的一层,就好像手机贴张馍一个道理
在这里插入图片描述

数字电路

使用将模拟电路通过划分高电压,低电压进行规定,转化为数字电路01
在这里插入图片描述


在这里插入图片描述

如果你觉得本文写的不错,还请一键三联支持博主呀,你的支持就是我不断创作的动力 👋🏼👏🏼👋🏼👏🏼

  • 31
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王子周棋洛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值