Signed-off-by: sairate <sairate@sina.cn>

This commit is contained in:
sairate 2024-09-01 10:32:56 +08:00
parent f14e338efd
commit 19ed8d5e5c
8 changed files with 344 additions and 1 deletions

View File

View File

@ -0,0 +1,89 @@
进制转换是计算机科学中的一个基本概念。不同的进制表示系统使用不同的基数例如二进制的基数是2十进制的基数是10来表示数字。以下是一些常见的进制及其转换方法
### 常见进制
- **二进制Binary**基数为2只使用数字 `0``1`
- **八进制Octal**基数为8使用数字 `0``7`
- **十进制Decimal**基数为10使用数字 `0``9`
- **十六进制Hexadecimal**基数为16使用数字 `0``9` 和字母 `A``F`(或 `a``f`代表10到15
### 进制转换方法
#### 1. 二进制转十进制
将二进制数按权展开,从右到左依次乘以 2 的幂,然后求和。
- 例如,二进制 `1011` 转换为十进制:
\[
1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11
\]
#### 2. 十进制转二进制
通过不断将十进制数除以2记录每次的余数然后将余数倒序排列得到二进制数。
- 例如,十进制 `13` 转换为二进制:
- 13 ÷ 2 = 6余数 1
- 6 ÷ 2 = 3余数 0
- 3 ÷ 2 = 1余数 1
- 1 ÷ 2 = 0余数 1
- 结果:`1101`
#### 3. 二进制转八进制
将二进制数每三位分组(从右到左),然后将每组转换为对应的八进制数。
- 例如,二进制 `101011` 转换为八进制:
- 将二进制数分组为 `101``011`
- `101` = 5`011` = 3
- 结果:`53`
#### 4. 八进制转二进制
将每个八进制数转换为三位二进制数,拼接得到最终的二进制数。
- 例如,八进制 `53` 转换为二进制:
- `5` = `101``3` = `011`
- 结果:`101011`
#### 5. 十进制转十六进制
通过不断将十进制数除以16记录每次的余数如果余数大于9转换为对应的字母然后将余数倒序排列得到十六进制数。
- 例如,十进制 `255` 转换为十六进制:
- 255 ÷ 16 = 15余数 15对应 `F`
- 15 ÷ 16 = 0余数 15对应 `F`
- 结果:`FF`
#### 6. 十六进制转十进制
将十六进制数按权展开从右到左依次乘以16的幂然后求和。
- 例如,十六进制 `1A3` 转换为十进制:
\[
1 \times 16^2 + 10 \times 16^1 + 3 \times 16^0 = 256 + 160 + 3 = 419
\]
### Python 实现进制转换
Python 提供了一些内置函数来轻松进行进制转换。
- **十进制转其他进制:**
``` python
# 十进制转二进制
print(bin(13)) # 输出0b1101
# 十进制转八进制
print(oct(13)) # 输出0o15
# 十进制转十六进制
print(hex(255)) # 输出0xff
```
- **其他进制转十进制:**
``` python
# 二进制转十进制
print(int('1101', 2)) # 输出13
# 八进制转十进制
print(int('15', 8)) # 输出13
# 十六进制转十进制
print(int('ff', 16)) # 输出255
```
通过理解这些转换方法,可以更好地掌握不同进制之间的关系和计算方法。

View File

@ -0,0 +1,116 @@
# 信息学史及基本知识
## 一、信息学的定义
信息学Informatics是一门综合性学科主要研究信息的获取、存储、处理、传输和应用。它融合了计算机科学、信息技术、数学、统计学、认知科学等多个领域旨在解决与信息相关的问题优化信息系统促进信息的高效利用。
## 二、信息学的发展历史
### 1. 早期信息处理
- **古代计算工具**:早在古代,人类就发明了各种计算工具,如算盘、算筹等,用于辅助计算和记录信息。
- **印刷术的发明**15世纪中叶古滕堡发明了活字印刷术极大地促进了信息的传播和知识的普及。
### 2. 计算机的诞生
- **机械计算机**19世纪查尔斯·巴贝奇设计了差分机和分析机被誉为“计算机之父”。尽管他的机器未能完全建成但为后来的计算机发展奠定了基础。
- **电子计算机**20世纪中叶电子计算机开始出现。1946年ENIAC电子数值积分计算机问世被认为是第一台通用电子计算机。
### 3. 信息理论的建立
- **信息理论**1948年克劳德·香农Claude Shannon发表了《通信的数学理论》奠定了现代信息理论的基础提出了信息熵等重要概念极大地推动了通信技术的发展。
### 4. 现代信息学的发展
- **互联网的兴起**20世纪末互联网的普及改变了信息的传播方式促进了全球信息化进程。
- **大数据与人工智能**进入21世纪大数据技术和人工智能迅速发展推动了信息学在各个领域的深入应用。
## 三、信息学的基本知识
### 1. 数据结构与算法
- **数据结构**:组织和存储数据的方式,如数组、链表、栈、队列、树、图等。
- **算法**:解决问题的步骤和方法,包括排序算法、搜索算法、动态规划等。高效的算法能够优化计算资源的使用,提高程序性能。
### 2. 编程语言
- **高级语言**如Python、Java、C++等,用于开发各种应用程序。
- **脚本语言**如JavaScript、Ruby用于快速开发和自动化任务。
- **编译语言与解释语言**编译语言如C、C++通过编译器转换为机器码解释语言如Python通过解释器逐行执行。
### 3. 数据库与信息管理
- **数据库管理系统DBMS**如MySQL、PostgreSQL、MongoDB用于存储、管理和检索数据。
- **关系数据库与非关系数据库**关系数据库基于表结构非关系数据库NoSQL适用于大规模、分布式数据存储。
- **数据建模与设计**:包括实体-关系模型ER模型、规范化等用于设计高效的数据存储结构。
### 4. 人工智能与机器学习
- **人工智能AI**:模拟人类智能行为的技术,包括专家系统、自然语言处理、计算机视觉等。
- **机器学习ML**AI的一个分支通过数据训练模型使计算机能够自动改进性能。包括监督学习、无监督学习、强化学习等。
- **深度学习**:基于神经网络的机器学习方法,广泛应用于图像识别、语音识别等领域。
### 5. 网络与通信
- **计算机网络**包括局域网LAN、广域网WAN、互联网等用于信息的传输与共享。
- **通信协议**如TCP/IP、HTTP、FTP等规定数据传输的规则和格式。
- **无线通信与移动网络**如Wi-Fi、4G/5G支持移动设备的连接与数据传输。
### 6. 信息安全
- **网络安全**:保护网络及其传输的数据不被未经授权的访问、修改或破坏。
- **加密技术**:如对称加密、非对称加密,用于保护数据的机密性和完整性。
- **安全策略与防护措施**包括防火墙、入侵检测系统IDS、安全审计等保障信息系统的安全。
## 四、信息学的应用领域
### 1. 计算机科学
研究计算机系统的理论基础、算法设计、软件开发等,推动信息技术的创新与发展。
### 2. 信息技术
应用信息学的理论和技术,开发和维护信息系统,支持各行业的信息化需求。
### 3. 生物信息学
结合生物学和信息学,处理和分析生物数据,如基因序列、蛋白质结构等,推动生命科学研究。
### 4. 数据科学
通过数据分析、数据挖掘、大数据技术,从海量数据中提取有价值的信息,支持决策和创新。
### 5. 人工智能与机器人
开发智能系统和自主机器人,应用于制造、医疗、服务等多个领域,提高效率和智能化水平。
### 6. 信息管理与决策支持
利用信息系统和数据分析工具,优化组织的信息管理流程,支持科学决策和战略规划。
## 五、信息学的发展趋势
### 1. 大数据与云计算
大数据技术和云计算平台的发展,使得海量数据的存储、处理和分析更加高效和便捷,推动各行业的数字化转型。
### 2. 人工智能与自动化
AI技术的不断进步推动自动化系统在各领域的应用提高生产效率和智能化水平。
### 3. 物联网IoT
通过互联网连接各种物理设备,实现数据的实时采集和分析,促进智能家居、智慧城市等的发展。
### 4. 信息安全与隐私保护
随着信息技术的普及,信息安全和隐私保护的重要性日益凸显,推动相关技术和法规的不断完善。
### 5. 边缘计算
将计算资源从云端向网络边缘移动,降低延迟,提高数据处理的实时性,满足物联网和智能设备的需求。
## 六、结语
信息学作为一门跨学科的综合性学科,在现代社会中扮演着至关重要的角色。它不仅推动了科技的进步,也深刻影响着人类的生产、生活和社会发展。了解信息学的历史和基本知识,有助于更好地理解和应用信息技术,迎接数字化时代的挑战与机遇。

View File

@ -0,0 +1,92 @@
### 信息学的近现代发展历史
在近现代信息学的发展经历了从简单的计算工具到复杂的信息系统的演变过程。这段历史充满了技术创新、思想突破和应用实践特别是从20世纪中期到21世纪的信息革命彻底改变了全球的信息处理和传播方式。
---
### 1. 20世纪初期到中期
#### 1.1 计算理论的奠基
- **艾伦·图灵Alan Turing**
- 在20世纪30年代艾伦·图灵提出了图灵机的概念奠定了现代计算机科学的理论基础。图灵机是一个抽象模型能够模拟任何算法的执行过程。图灵的计算理论在逻辑和数学基础上说明了计算机可以处理的任务种类。
- 他的论文《论可计算数及其在判定问题上的应用》1936年提出了可计算性的概念揭示了哪些问题可以通过算法解决哪些不能。
#### 1.2 香农的信息理论
- **克劳德·香农Claude Shannon**
- 1948年香农发表了《通信的数学理论》正式提出了信息论的基本框架。香农提出了“比特”bit作为信息的基本度量单位并定义了信息熵描述了信息的不确定性。
- 香农的工作对现代通信系统和数据压缩有着深远影响,是信息学、计算机科学和电信技术的基础。
#### 1.3 早期电子计算机的发展
- **冯·诺依曼架构**
- 20世纪40年代数学家冯·诺依曼John von Neumann设计了一个具有存储程序能力的计算机架构这一架构被称为“冯·诺依曼架构”。它将计算机的五个基本组件输入设备、输出设备、存储器、控制单元和算术逻辑单元ALU分离开来。这个架构成为现代计算机设计的基础。
- **ENIAC**
- 1946年ENIAC电子数值积分计算机是世界上第一台通用电子计算机。它是为解决复杂的数学问题而设计的并且使用了真空管作为核心组件标志着计算机进入电子化时代。
#### 1.4 计算机科学的发展
- **20世纪50年代至60年代**
- 在这个时期计算机科学开始形成一门独立的学科。随着Fortran1957年、Lisp1958年、COBOL1959年等早期编程语言的发明计算机开始进入学术界和工业界的广泛使用。
- 1960年Edsger Dijkstra提出了“结构化编程”的概念强调通过控制结构和模块化设计来减少程序中的错误。
- 1965年戈登·摩尔提出“摩尔定律”指出芯片上可容纳的晶体管数目每隔两年就会增加一倍从而推动了计算机硬件技术的迅猛发展。
---
### 2. 20世纪后期信息学的爆发
#### 2.1 个人计算机的诞生
- **20世纪70年代**
- 微处理器的发明使得计算机成本大大降低个人计算机的概念逐渐成形。1975年Altair 8800问世它被认为是首款大众化的个人计算机。随后Apple、IBM等公司纷纷推出自己的个人计算机产品。
- 微软推出了MS-DOS操作系统苹果发布了图形用户界面GUI的Macintosh计算机这些都极大地推动了计算机在个人和商业领域的普及。
#### 2.2 编程语言与软件开发
- **C语言与Unix系统**
- 1972年丹尼斯·里奇Dennis Ritchie发明了C语言它成为了现代操作系统和应用程序开发的核心语言。C语言的简洁性和高效性使其迅速普及并成为许多编程语言的基础。
- Unix操作系统的诞生20世纪70年代早期标志着操作系统的标准化它的多任务处理和网络功能成为现代操作系统的基础。
- **面向对象编程的兴起**
- 20世纪80年代面向对象编程OOP理念逐渐兴起代表性的语言有Smalltalk和C++。这种编程范式通过封装、继承和多态性等特性提高了程序的可扩展性和可维护性。
#### 2.3 互联网的诞生与发展
- **Arpanet与互联网**
- 1969年Arpanet是世界上第一个分组交换网络它是互联网的前身。Arpanet最初是为美国国防部设计的网络旨在通过分布式网络确保信息传递的安全性。
- 1980年代末Tim Berners-Lee发明了万维网World Wide Web使得互联网成为了一个全球性的信息共享平台。HTML超文本标记语言、HTTP超文本传输协议和URL统一资源定位符的发明为互联网的普及奠定了技术基础。
#### 2.4 数据库和信息管理的兴起
- **关系数据库**
- 1970年埃德加·科德Edgar F. Codd提出了关系数据库模型它使用表来存储数据具有强大的查询能力。SQL结构化查询语言成为了关系数据库的标准查询语言。
- Oracle、IBM、Microsoft等公司开发了商用关系数据库管理系统RDBMS推动了数据管理在企业中的应用。
- **非关系型数据库NoSQL**
- 随着互联网和大数据的崛起传统的关系数据库在处理大规模、分布式数据时逐渐显现出局限性。NoSQL数据库如MongoDB、Cassandra等提供了高并发性和扩展性成为大数据处理的主流工具。
---
### 3. 21世纪的信息革命
#### 3.1 大数据时代
- **数据的指数级增长**
- 进入21世纪随着互联网、移动设备、社交媒体和物联网IoT的普及数据量呈现指数级增长。大数据技术成为新的研究和应用热点。
- Hadoop2006年和Spark等大数据处理框架相继问世提供了分布式存储和处理能力使得海量数据的处理变得可行。
#### 3.2 云计算的兴起
- **云服务与虚拟化**
- 云计算彻底改变了计算资源的使用方式。通过Amazon Web ServicesAWS、Google Cloud、Microsoft Azure等云服务平台用户可以按需获取计算资源而不必自己购买和维护硬件。
- 虚拟化技术如VMware、Docker进一步提高了资源利用率和部署灵活性推动了微服务架构的广泛应用。
#### 3.3 人工智能与深度学习
- **机器学习与AI的崛起**
- 随着数据和计算能力的增长机器学习、特别是深度学习技术在20世纪末和21世纪初迅速发展。AlexNet2012年使用卷积神经网络在ImageNet图像识别比赛中获得了突破性成果标志着深度学习的崛起。
- 人工智能在语音识别、自然语言处理、图像识别、自动驾驶等领域的应用,推动了智能化技术的广泛应用。
#### 3.4 区块链技术
- **去中心化与加密货币**
- 2008年匿名人物“中本聪”提出了比特币的概念基于区块链技术实现了一种去中心化的数字货币。区块链作为一种分布式账本技术具有去中心化、不可篡改和透明性的特性逐渐应用于金融、供应链管理等多个领域。
---
### 4. 信息学的未来展望
- **量子计算**量子计算机的理论基础在20世纪末提出目前仍处于早期发展阶段。如果成功实现它将彻底颠覆现代计算机的计算能力能够解决目前经典计算机无法处理的复杂问题。
- **智能边缘计算**随着5G和物联网的进一步发展边缘计算将变得更加重要。它允许数据在网络的边缘处理减少延迟提升实时性。
- **隐私保护与数据安全**:随着信息量的增长和隐私意识的提升,数据隐私保护和信息安全技术将成为关键领域。密码学、隐私计算、零知识证明等技术会得到更广泛的应用。
---
现代信息学不仅仅是计算的科学,更是信息处理、管理和传播的科学。随着技术的不断发展,信息学将继续在塑造社会、经济和文化方面发挥重要作用。

View File

@ -0,0 +1,11 @@
document$.subscribe(({ body }) => {
renderMathInElement(body, {
delimiters: [
{ left: "$$", right: "$$", display: true },
{ left: "$", right: "$", display: false },
{ left: "\\(", right: "\\)", display: false },
{ left: "\\[", right: "\\]", display: true },
{ left: "\[", right: "\]", display: true }
],
})
})

View File

@ -0,0 +1,7 @@
// markdown_extensions:
// - pymdownx.arithmatex:
// generic: true
//
// extra_javascript:
// - javascripts/mathjax.js
// - https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js

View File

@ -11,7 +11,10 @@ nav:
- 简介: - 简介:
- 介绍: index.md - 介绍: index.md
- 编程基础: - 编程基础:
- 介绍: basic.md - 基础概念: basic/program/program.md
- 信息学发展史(近代版): basic/program/信息学发展史(近现代).md
- 数学基础:
- 进制转换: basic/math/进制转换.md
theme: theme:
name: material name: material
@ -22,3 +25,23 @@ theme:
font: font:
text: 'Roboto' text: 'Roboto'
code: 'Roboto Mono' code: 'Roboto Mono'
markdown_extensions:
- pymdownx.arithmatex:
generic: true
extra_javascript:
- javascripts/katex.js
- https://unpkg.com/katex@0/dist/katex.min.js
- https://unpkg.com/katex@0/dist/contrib/auto-render.min.js
extra_css:
- https://unpkg.com/katex@0/dist/katex.min.css
#markdown_extensions:
# - pymdownx.arithmatex:
# generic: true
#
#extra_javascript:
# - javascripts/mathjax.js
# - https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js

5
notebook/start.py Normal file
View File

@ -0,0 +1,5 @@
import os
import subprocess
# 运行 mkdocs serve 命令
subprocess.run(['mkdocs', 'serve'])