计算机二进制原理是哪个发明的,二进制与计算机

2023-11-28 15:50

本文主要是介绍计算机二进制原理是哪个发明的,二进制与计算机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

04b3d9e99196e7bce5d46eefbbbf6c21.png

二进制与计算机事物的多少或者顺序,我们可以用一种称为“数”的符号来表示。事物的数量是无穷的,我们却不可能创造无数个符号。为了解决这个难题,人们创造了进位制(又叫做位值制),这样就可以用几个有限的符号,来表达无穷的数量了。

进位制是人类计数史上最伟大的创造之一。现在国际通用的主要进位制有十进制、二进制、二十进制和六十进制。其中的二进制是计算机通用的进位制。

八卦:最早提出的二进制思想

中国古人很早就开始使用十进制的计数方法,其数字符号有:一、二、三、四、五、六、七、八、九、十、百、千、万、亿、兆等。此外,还有与中国的传统思想、文化和生活有密切关系的符号体系——天干、地支和八卦。

a367be638ef81a3227183be2d208e21e.png

《伏羲之先天八卦图》

古人用天干和地支表示顺序、计时和纪年,天干有10个符号:甲、乙、丙、丁、戊、己、庚、辛、壬、癸 。地支也就是我们所说的属相,有12个动物作为符号:子(鼠)、丑(牛)、 寅(虎)、卯(兔)、辰(龙)、巳(蛇 )、午(马)、未(羊)、申(猴 )、酉( 鸡)、 戌(狗)、亥(猪)。

八卦或许是最古老和神秘的符号,是中国所独有的一种符号体系。据传说,在上古时代,伏羲“仰观天文,俯察地理”,他发现世间万事万物,皆阴阳相生相克,而作八卦。其实,八卦是中国古时候人们记录卜筮结果的符号,其基本结构成分是形似卜筮工具蓍草的“爻”,一个爻有“阳”和“阴”两种形态,三个爻放在一起就组成一个“卦”,所以总共有23=8种卦,称为八卦。八卦出现时还没有文字,因此起初卦没有名称。文字出现以后,为了便于使用,人们又补上了卦名:乾、兑、离、震、巽、坎、艮、坤 。把八卦两两重叠就组成了六十四卦。算卦的人就用六十四卦来预测凶吉福祸,解释世间的万事万物。流传至今的《周易》就是一部专门解释六十四卦的古书,它是由孔子和他的弟子整理而成的。

7f108448503403c2fc954416c580159b.png

《周易》六十四卦图

二进制由1和0排列而成,与十进制一样,它也能表示任何整数。如若把阳爻当作“1”,把阴爻当作“0”,八卦则可与3位二进制相对应,而六十四卦则可与6位二进制相对应。

1679年,德国哲学家、数学家莱布尼茨写了一篇《二进制算术》,对二进制及其运算首次给出了比较完整的描述。后来,他拜访一位曾经到过中国的欧洲传教士,了解了中国的周易八卦,他对其与二进制数的相似之处极为惊叹。八卦是利用符号的二元形态来表示事物,这一点与二进制颇为相同,因此说,八卦是古代中国人提出的二进制思想。

二进制是为计算机而发明的

1678年,德国著名数学家布莱尼茨发明了计算机,为了满足计算机的需要,他引入了二进制。二进制是最为简单的进位制,仅有1和0两个基本符号,运用二进制,逢2进1,与其他进位制相比较,同样一个数,二进制位数比较多。例如,十进制的2对应二进制的10;十进制的4对应二进制的100;十进制的5对应二进制的101;十进制的10对应二进制的1010;十进制的37对应二进制的100101等等。

用二进制表示的数字,虽然位数比较多,看起来还不够直观,但计算时却非常简单,其加法和乘法公式分别仅有4条,而十进制中相应的公式则有100多条。二进制的加法公式为:

1+1=10, 1+0=1, 0+1= 1,0+0= 0;乘法公式为1x1=1,0x0=0,0x1=0,1x0=0。

从以上的介绍可以看出,二进制的符号较少,运算较简单,所以莱布尼茨在自己发明的计算机上就采用了二进制。现在的计算机上依然采用二进制,除了上述原因,另外一种原因是,在计算机上,两种截然相反状态的现象是大量存在的,比如电路的通电与断电,电容器的充电与放电等,这些均可以用二进制的两个符号1和0 来表示。例如计算机电路的接通用1表示,断开用0表示。

作者:张争艳

审校:李志洪

本作品为“科普中国-科学原理一点通”原创 转载时务请注明出处

作者: 张争艳

[责任编辑: 吕芮光]

这篇关于计算机二进制原理是哪个发明的,二进制与计算机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429922

相关文章

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L