[oeasy]python0041_teletype历史_博多码_shift_capslock_字符数字切换_gear
teletypewriter 历史
回忆上次内容
- 上次见到了一个真的机械打字机
- 感受到了蒸汽朋克的时代背景
- 上上次区分了一些概念
terminal
终端,电脑连线最终的端点TeleTYpewriter
,电传打印机,终端硬件shell
,终端硬件基础上的软件壳子Console
控制台,直接连接主机的控制面板
- 换行和回车是两回事
- 换行 对应字节
0x0A
- Line-Feed 的意思是水平不动、垂直向上喂纸
- 所以是
feed
- 回车 对应字节
0x0D
- Carriage-Return
- 意思是让上图可移动的打印头
- 好像可移动的四轮马车 Carriage)
- 垂直不动、水平
回
到纸张左侧 - 所以是
Return
- 换行 对应字节
- 对于换行和回车,不同层面的理解
- 电传打字机:两件事,经常一起干,但也可以分别干
- 不同操作系统
- unix-like:大家一起简化这个成
\n
,就步调一致就都好了 - mac:为了避免麻烦,我和unix-like一致
- windows:原来我用户多,定什么规矩我说了算,现在我还是随大流吧
- unix-like:大家一起简化这个成
- python 解释器
- 首先我觉得
unix-like
做得对 - 不管在什么系统、什么架构上
- 我把这个事统一
- 首先我觉得
- 光说不练假把式
- 我能看看电传打字机吗?
- 那这
0x0A
、0x0D
谁规定的 - 来自于什么呢?
发明人
0x0A
、0x0D
- 这两个字符 来自于 一套编码
- 博多码(
Baudot code
)
- 为什么 叫做 博多码(
Baudot code
)呢?- 因为 发明这个的人 叫波多
- Jean-Maurice-Émile
Baudot
- 从农民
- 到电报操作员
- 再到法国电报工程师
- 他收到
Hughes
的启发
- Jean-Maurice-Émile
- 发明了 用一条线路 传输
多个bit位
- 因为 发明这个的人 叫波多
独特的按键和编码
- 这是 最早 发报电键 的样子
- 5-bit
- 白色的
- 有用
- 黑色的
- 是分隔符
- 可以传输
2
5
种信号- 具体怎么 分配编码 呢?
Baudot 编码
- 博多 设计了 编码的方法
- 后来 他就 申请了法国专利
- 再后来 申请了英国专利
- 后来 他就 申请了法国专利
- 今天所用 的
波特
这个单位- 就是 来源于他
- 但是 这种编码 只有字母
- 没有 数字
- 怎么发
带数目的电报
呢?
挂档
- 把字符
分类
成两组Letter
- 字母
Figure
- 数字和符号
- 通过标志位 进行选择
- 落实到 档位
- 选 打字头
- 由 哪组字模 进行输出
- 通过 特定字符
- 切换 字模档位
- 按一下
0b01000
- 切换 档位
- 这种思想 来自于 机械
档位
- gear 就是 齿轮
- 来自
挂档
- 来自
- 从 蒸汽火车
- 到 电动汽车
- 甚至 计算机
- 这样 一路下来
换挡键
- 今天的 caps lock 和 shift
- 是
两
种 换挡方式
- 是
5bit
这样 就可以- 虚拟出
6bit
的效果 - 但是 需要 一个字符 来切换状态
- 虚拟出
- 还需要约定
- 最初的状态
- 以及
- 状态多长时间之后
- 重置回默认
- 这些其实是 最早的
session
(会话)
- 这种编码最终形成了
ITA1
编码
键盘
- 形成了
qwer
键盘 的基本布局- 有字符、数字、符号
- 控制字符
- BELL
- LINE FEED
- CAR RET
- FIGS
- LTRS
- 在当时
- 回车 和 换行
- 还是两回事
- 尤其 机械打字机
- 回车 和 换行
- 打字符 速度快
- 由于 是
机械
装置 - 换行+回车 速度慢
- 换行时间 不给足的画
- 下一个字符
- 位置不确定
- 由于 是
- 往往
- 多发一些 空(Null)
- 延迟时间
- 注意这个空(Null)
- 不是空格(Space)
- 空(Null)延迟时间
- 却不 打印内容
- 等 carriage return 回来
- 继续 打印
- 电传打字机
- 有 什么
经典
机型 么?
- 有 什么
ASR-33
ASR-33
是当时的一代机皇A
utomaticS
end-R
eceive
- 可以看到 当时的io设备
- 纸带 存储
- 打印纸 标准输出流
- 打字机键盘 标准输入流
- 为什么 当初 收发电报的 电传打字机
- 会和 电子计算机 结合得 这么紧密 呢?
unix时代
- 昂贵的 主机时代
- PDP-7 小型机
- 72000美元
- GE-45
- 1000万美元
- PDP-7 小型机
- 这就是 开发multics的 时代背景
- 项目失败后
- 无所事事的两人
Kenneth Thompson
Dennis Ritchie
- 希望能在 PDP 机器上继续玩
star travel
- 无所事事的两人
- 于是 制作了
unix
和c
- 目标是 分时 多用户系统
- 分时
- 意味着 各个进程
- 可以 分享 硬件资源
- 多用户
- 意味着 要给 每个用户
- 配置 一个 终端
- 分时
- 目标是 分时 多用户系统
- 每个 用户 都要有
- 显示器
- 键盘
价格
- 当时 所有的计算机设备
- 价格 都非常昂贵
- 显示器 别想了
- 而且 键盘和主机 是 集成在一起
- 没有独立的键盘
- 最后
- 找到 ASR33电传打字机
- 电传打字机 的 用途
- 是 收发电报
- 但是
- 也可以 作为
- 人与计算机 的 接口
- 而且 价格低廉
- 也可以 作为
- 编码 也随着
- 机器 的 进化
- 不断 进化
编码的进化
- 在 ITA1 的基础上
- 编码
进化
了
- 编码
- 类型 还是 三类
- 字符
- 符号包括数字
- 控制字符
- 特殊字符
- 在
ascii
时代 - 还有吗?
- 比如bel?
- 在
- 除了
\n
和\r
之外- 还有 什么控制字符 呢?
- 黑暗森林 的 神秘面纱
- 感觉 就要 揭开 了呢!
总结
- 我们回顾了
5bit-Baudot
博多码的来历 - 从 莫尔斯码 到 博多码
- 原来
- 人 来 收发电报
- 现在
- 机器 来 收发电报
- 输入方式
- 从 电键
- 改成 键盘
- 输出方式
- 从 纸带
- 变成 打印纸张
- 原来
- 后来
- 电传打字机ASR-33
- 成为 初代 经典终端
- 除了
\n
和\r
之外- 还有
什么
特殊字符 吗?
- 还有
- 蓝桥->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
[oeasy]python0041_teletype历史_博多码_shift_capslock_字符数字切换_gear的更多相关文章
- 字符输出流_Writer类&FileWriter类介绍和字符输出流的基本使用_写出单个字符到文件
java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性的成员方法: - void write(int c) 写入单个字符 - void write(char[] ...
- 字符输出流_Writer类&FileWrite类介绍和字符输出流的基本使用_写出单个字符到文件
字符输出流_Writer类&FileWrite类介绍 java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性抽象方法: void write(int c) ...
- SQL Server判断某个字段是否包含中文/英文字符/数字
原文:SQL Server判断某个字段是否包含中文/英文字符/数字 因最近在清理系统中的脏数据,需要查询某个字段是否包含中文/英文字符/数字的数据, 比较简单,仅以此篇博客做一个简单总结,方便以后查阅 ...
- C#、Java实现按字节截取字符串包含中文汉字和英文字符数字标点符号等
C#.Java实现按字节截取字符串,字符串中包含中文汉字和英文字符数字标点符号等. 在实际项目应用过程中,尤其是在web开发时可能遇到的比较多,就以我的(JiYF笨小孩管理系统)为例,再发布文章时候, ...
- 实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎
实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎 Programmatic Framework™ 传漾程序化购买框架
- 计算机二级-C语言-字符数字转化为整型数字。形参与实参类型相一致。double类型的使用。
//函数fun功能:将a和b所指的两个字符串分别转化成面值相同的整数,并进行相加作为函数值返回,规定只含有9个以下数字字符. //重难点:字符数字转化为整型数字. #include <stdio ...
- python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- C语言第八次博客作业--字符数组
一.PTA实验作业 题目1:查验身份证 1. 本题PTA提交列表 2. 设计思路 定义i,flag=1,z,m[11],a[19] 输入次数n for i=1 to n+1 gets(a) 加权求和在 ...
- C语言博客作业--字符数组
一.PTA实验作业 题目1:统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 Begin 定义字符型变量ch,pre=' ': 定义整型变量count://用来记录单词个数 count ...
随机推荐
- RoslynPad的简单使用
虽说Visual Studio被我们戏称宇宙最强IDE,但是平常随手写段C#代码进行验证或者语法校验,属于牛刀小试了,显然轻量级C#编辑器更适合这种场景,目前较为流行的则是一代神器 LINQPad,但 ...
- 重温 ShardingSphere 分布策略
ShardingSphere--分片及策略:https://blog.csdn.net/weixin_38910645/article/details/107538848 Sharding-JDBC: ...
- 使用Docker安装Odoo 17(非Docker Compose)
使用Docker安装Odoo 17(非Docker Compose) 前言 最近在学习Odoo,先是windows 安装企业版,多年不用windows的服务器操作系统,一看windows的ECS那么贵 ...
- FFMPEG 信息查询
一.问题描述 最近测试反馈一个隐私模式的问题,主播端启用隐私模式之后,在观看端发现画面转菊花并且还有回跳的现象 二.问题分析: 从网上下载了直播的视频文件,进行了一下分析,发现视频长度和音频长度不匹配 ...
- 霍夫变换原理及实现(Opencv C++)
已知一幅图像中的n个点,假设我们希望找到这些点中位于直线上的子集.一种可能的解决方法是,首先找到由每对点确定的所有直线,然后寻找靠近特定直线的那些点的所有子集.这种方法涉及寻找n(n-1)/2~n2条 ...
- react 数据请求分层
封装一个接口请求类 数据模型 请求uri配置设置 数据统一存储于redux中,在本项目中创建一个store目录,此目录中就是redux仓库源 定义仓库入口 reducer methods方法 acti ...
- vue组件间传值 父组件向子组件传值
² 父组件以属性的形式绑定值到子组件身上 ² 子组件通过使用属性props接收(props是单向绑定的(只读属性):当父组件的属性变化时,将传导给子组件,但是反过来不会) 第1步,父组件以动态属性的方 ...
- C# .NET 云南农信国密签名(SM2)简要解析
BouncyCastle库(BC库)与云南农信最大的区别是 : BC库 SM2Signer.Init() 方法比云南农信多了最后3行代码: digest.Reset(); z = GetZ(user ...
- k8s介绍
k8s容器编排系统 k8S是谷歌几十年来研发的一套系统,更新了运维领域的玩法. 内容很多,先快速练习玩法,知道是什么就行. 具体[为什么]再花时间慢慢学吧! 0.参考资料 1. k8s能干什么 htt ...
- LNMP单机架构
黄金架构LNMP LNMP是网站架构初期最合适的单体架构.因为初创型技术团队对于技术的选型,需要考虑如下因素 在创业初期,研发资源有限,研发人力有限,技术储备有限,需要选择一个易维护.简单的技术架构: ...