[oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端

简介: [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端

编码进化

回忆上次内容

  • 上次 回顾了
  • 字符编码的新陈代谢
  • ibm 曾经的EBCDIC
  • 由于 字符不连续
  • 导致 后续 出现无数问题
  • 随着 网络的发展
  • 数据交换的 需要
  • 原来的小隐患
  • 现在 产生了 巨大问题
  • Bemer 联合各方巨头
  • 想要推出
  • 字符连续的编码集
  • 这新编码集 具体长什么样 呢?🤔

新编码集

  • 7-bit的编码长度
  • 结构和 今天的ascii 基本一样

  • 空了 28个字符
  • 今天小写字母的位置
  • 当时 还不敢放小写字母
  • 为什么呢?

各语言

  • 各语言 都想进入 7-bit
  • 日文假名
  • 拉丁字符
  • 西里尔字符
  • 眼巴巴地等着地儿放

  • 新编码 比EBCDIC 好了很多
  • 具体 好在里呢?

ASCII字母 连续性

  • 轻松判断字符 是否为 字母

  • 连续性
  • ascii的 大写字母 是连续的
  • ascii的 小写字母 也是连续的

  • 还加了一些字符进去

反斜杠

  • 反斜杠
  • 就是Bemer加到 ASCII当中的

  • 反斜杠
  • 后来 成了转义字符
  • 1963年的版本
  • 黑暗森林 已经 初具规模
  • 不过 好像找不到 Esc

Esc

  • Esc 还不在 当时的黑暗森林 中
  • 而是 位于倒数第二

  • 1963年
  • Bemer将Esc 引入到ASCII中
  • 几年后
  • 小型机开拓者DEC
  • 通过 PDP系列小型机 开拓市场
  • 将Esc 玩成了
  • 终端控制序列
  • 从 VT05 到 VT100 再到 VT220
  • 最终 把控制序列 玩成了ANSI标准
  • \33[38;5;196❤\33[0m
  • 爱了

最初版的 黑暗森林

  • 很多编码 已经消失了

  • 有些永远留在了ASCII里
  • LF
  • HT 其实就是 TAB
  • ESC
  • DEL

  • 就像 一场青春期的梦

组织

  • 标准 一经推出
  • 被 Bell贝尔公司 响应
  • 贝尔公司 是 电报电话巨头
  • 在 计算机领域 没有历史包袱

  • 贝尔、麻省理工及美国通用电气
  • 想要在 计算机操作系统 有所收获
  • 成立了 multics项目组
  • 后来 项目组解散
  • 无所事事的Thompson和Ritchie
  • 开始琢磨怎么 在PDP-7 继续 玩《space travel》
  • 最终 unix 和 c 诞生
  • 这IBM统治之下
  • PDP 小型机 是如何崛起的呢?

输出设备

  • 早期计算机输入设备
  • 是开关

  • 早期计算机输出设备
  • 是指示灯

PDP的崛起

  • 1962年
  • 美国麻省理工学院里
  • 第一台 拥有可视化显示器的小型机PDP-1出现
  • 拥有10英寸光栅显示器

  • 斯蒂芬·罗素 带着学生开发出了
  • 具有历史意义的电子游戏
  • 太空大战
  • 比雅达利的pong要早得多
  • 基于PDP系列小型机

电子竞技

  • 利用 最原始的图形技术
  • 表现出 茫茫深空下的神秘

  • 1972年
  • 召开 史上第次电子竞技大会
  • 泛银河系太空大战奥运会

新的生态

  • unix 和 c 诞生之后
  • IBM那套自上而下、以销售为核心的体系
  • 不理解 软件特性

  • unix 和 c 迅速占领市场
  • 硬件 靠的就是 PDP系列小型机
  • 这也 推动了 Dec的发展

ASA X3.4-1963

  • Dec 没有IBM的历史包袱
  • 期待 改变
  • 采取了 ASA X3.4-1963 这个编码集

  • DEC公司
  • 确实崛起了
  • 除了 作为主机的小型机
  • DEC 也做 终端

VT-100

  • VT-100 系列终端
  • 真的很潮

  • PDP小型机
  • 开始用 小型机网络
  • 蚕食 IBM大型机的份额
  • ASCII在网络中
  • ASA X3.4-1963 成为 事实上的标准

总结

  • 这次 回顾了 字符大战的结果
  • ibm 曾经的 EBCDIC 由于字符不连续的隐患
  • 导致后续 出现 无数问题
  • 无法补救
  • 7-bit 的 ASA X3.4-1963
  • 字母序号连续
  • 比较字符时 效率高
  • 判断字符 是否是字母 也很容易
  • 获得了 IBM以外公司的 支持

  • 为什么 ASA X3.4-1963 是 7-bit 编码?
  • 8-bit 不是才 正好一个字节 吗?🤔
  • 我们下次再说!👋
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython
  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
目录
相关文章
|
10天前
|
Rust JavaScript 前端开发
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
本文探讨了编程语言中的动态类型与静态类型、强类型与弱类型的概念。通过实例分析,如Python允许变量类型动态变化(如`age`从整型变为字符串),而C语言一旦声明变量类型则不可更改,体现了动态与静态类型的差异。此外,文章还对比了强类型(如Python,不允许隐式类型转换)和弱类型(如JavaScript,支持自动类型转换)的特点。最后总结指出,Python属于动态类型、强类型语言,对初学者友好但需注意类型混淆,并预告下期内容及提供学习资源链接。
48 21
|
8天前
|
Python Windows
[oeasy]python076_int这个词怎么来的_[词根溯源]整数类型_int_integer_touch
本文探讨了“int”一词的起源及其与整数类型的关联。通过词根溯源,揭示“int”来源于“integer”,意为“完整的数”,与零碎的分数相对。同时分析了相关词汇如“tact”(接触)、“touch”(触摸)及衍生词,如“tangential”(切线的)、“intagible”(无形的)和“integral”(完整的、不可或缺的)。文章还结合编程语言特性,解释了Python作为动态类型、强类型语言的特点,并总结了整型变量的概念与意义。最后预告了后续内容,提供了学习资源链接。
38 11
|
4天前
|
存储 C语言 Python
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
22 1
|
11天前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
24 4
|
17天前
|
Shell Python
[oeasy]python072_名字空间是怎么玩的_from_import_as_导入_namespace
本文介绍了Python中名字空间和模块导入的使用方法。主要内容包括: 1. **回忆上次内容**:回顾了之前导入系统模块(如`__hello__`、`time`)和自定义模块(如`my_file`),并介绍了如何导入和使用模块中的变量。 2. **从shell开始**:展示了如何在命令行中编辑和切换文件,以及如何通过`import`语句引入模块。 3. **修改oeasy.py**:演示了如何通过`import my_file`导入模块,并将模块中的`pi`赋值给本地变量`pi`。 4. **locals()函数**:解释了如何使用`locals()`查看当前作用域内的本地变量及其值。
29 8
|
15天前
|
Python
[oeasy]python073_下划线在python里是什么含义_内部变量_私有变量_系统变量
本文回顾了Python中从模块导入变量和函数的方式,重点讨论了避免本地变量名冲突(local name clashes)的方法。通过`from module import variable as alias`可以为导入的变量重命名,防止冲突。根据PEP8规范,建议避免使用`from module import *`,因为它会导入模块中所有非下划线开头的变量,容易引发冲突。下划线在变量命名中有特殊含义:单个前导下划线表示内部变量,后置下划线用于避免与关键字冲突,双下划线前后包围表示系统变量。总结了下划线的不同用法及其作用。下次将继续探讨更实用的编程技巧。
30 3
|
27天前
|
人工智能 自然语言处理 Shell
[oeasy]python070_如何导入模块_导入模块的作用_hello_dunder_双下划线
本文介绍了如何在Python中导入模块及其作用,重点讲解了`__hello__`模块的导入与使用。通过`import`命令可以将外部模块引入当前环境,增强代码功能。例如,导入`__hello__`模块后可输出“Hello world!”。此外,还演示了如何使用`help()`和`dir()`函数查询模块信息,并展示了导入多个模块的方法。最后,通过一个实例,介绍了如何利用`jieba`、`WordCloud`和`matplotlib`模块生成词云图。总结来说,模块是封装好的功能部件,能够简化编程任务并提高效率。未来将探讨如何创建自定义模块。
38 8
|
24天前
|
缓存 Shell 开发工具
[oeasy]python071_我可以自己做一个模块吗_自定义模块_引入模块_import_diy
本文介绍了 Python 中模块的导入与自定义模块的创建。首先,我们回忆了模块的概念,即封装好功能的部件,并通过导入 `__hello__` 模块实现了输出 "hello world!" 的功能。接着,尝试创建并编辑自己的模块 `my_file.py`,引入 `time` 模块以获取当前时间,并在其中添加自定义输出。
24 4
|
1月前
|
人工智能 数据库 开发者
[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally
介绍了 Python 中 `try` 语句的完全体,包括 `try`、`except`、`else` 和 `finally` 子句的使用。通过实例展示了如何捕获异常并输出详细的错误信息,如文件名和行号。特别强调了 `finally` 子句的作用,无论是否发生异常,`finally` 都会执行,常用于清理操作。最后总结了 `try` 语句的四个部分及其应用场景,并简要提及了 Python 社区的决策机制。 #try #except #else #finally
27 1
|
1月前
|
人工智能 数据库连接 开发工具
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
35 0