[oeasy]python0084_扩展BCD_EBCDIC_ibm的发家史
编码进化
回忆上次内容
- 上次 回顾了
- 数字 进入二进制世界的 过程
- 采用的编码 是 BCD
BinaryCodedDecimal- 也叫8421码
- 十进制数的 二进制形态
- 数字的 输出形式
- 辉光管
- 七段数码管
- 7-seg

- 除了数字 之外
- 还有 字母
- 字母 是如何编码进入 计算机世界的 呢?
BCDIC
- 在BCD的 基础上
- ibm 继续着 人口统计的工作
- 除了数字之外
- 有了 字母编码的需求

- ibm制作了一种 6-bit 的字符编码格式
- BCDIC
- Binary Coded Decimal Interchange Code
- 是一种 6-bit 的编码
- 是一种 以纸带为核心的 编码
- BCDIC
- 在BCD的基础上 添加了字母
- 字母 按照十进数 编码
- 为什么 不按 二进制数 编码呢?
输入
- 输入的设备 是 数字键盘
- 3个十进制数字输入1个字母

- 数字键盘 在固定电话中 依然存在

- 有点像 九键输入法
- 当时的 ibm
- 是 数字世界的 领航员
ibm
- ibm从一开始
- 玩的 就是数字化
- 以人口统计 起家

- 到 称重计价

- 再到 上班打卡

- 数字化 根本离不开ibm
- ibm开始逐渐盲目自大
- 酝酿了隐患
隐患
- 数字键盘
- 符号部分需要四次按键

- BCDID
- 本来连续的 6-bit 当中
4行12列 本应连续

- 红色部分造成
- 字母序号 不连续
- 这 是个 小小的隐患
行列
- BCD扩展后的 BCDIC

- 6 位 2进制数字
- 可以记录 1个字符

- 6-bit的编码
继续发展
- ibm业务 越来越多
- 各国都要统计数据

- 业务 越来越多
- 编码方式 大同小异
- 但是 随着业务的不同
- 每次的编码 也有 调整
商业 公司
- 商业公司 也想要 统计数据
- ibm也接下

- 业务多了
- BCDIC 这个编码本身
- 也在随着业务的增多不断发展变化
- BCDIC 这个编码本身
问题
- ibm 在数字化的过程中 机会很多
- 随着业务的
变化- BCDIC编码 也跟着
变化
- BCDIC编码 也跟着
- 造成了 编码本身的 不稳定
- 随着业务的

- 后面的代码
- 并不能 和前面兼容
- 那个时候 还没有向下兼容的 概念
后来
- 混乱之上的混乱就显得更加混乱
- 总共有 6 个不兼容的编码
- 每个编码都不同
- 各个编码之间不能相互转化
- 甲方不得不花钱来进行转化?

- 话说编码不应该是最开始就想好么?
- 现实却是设计跟着思路
- 思路跟着需求走
- ibm 终于意识到不同的格式之间应该编码统一了
编码细节
- 由于 编码不兼容
- 导致 旧的数据不能用了
- 这个编码转化
没人知道怎么弄- 成了 IBM 历史上 最大黑点和最高机密
- IBM今天
- 仍然是银行和金融系统
最相信的系统集成商- 历史上游的优势
- 真的很厉害
- 历史上游的优势
- 仍然是银行和金融系统

- 后期编码中
- 基本数字和字符
- 比较稳定
- IBM 也有了 专门 进行解码的打印机
- 基本数字和字符
- 但是 符号部分
- 没有 统一的规范
- 随着 业务变化
- 处于 一个混乱的状态 中
- 为了兼容而兼容
- 把隐患就给兼容进来了
- 为什么 要 这样编码 呢?
利于转化
- ibm 终于开始注意 向后兼容的问题
- 这种新编码是要和原来的 6-bit 的编码兼容
- 可以快速的转化

按理说以 ibm 当时垄断的情况
- 已经把这个编码做成自己的标准
- 也就成了行业的标准
- RCA 和富士也开始以此标准制作兼容系统
- 兼容这种编码
- RCA 和富士也开始以此标准制作兼容系统
在隐患上建立起再高的大楼
- 也是要倒塌的
可是用什么编码来统一的呢?
EBCDIC
- ibm终于决心把字符编码定下来
- 在BCDIC的基础之上
- 确立EBCDIC
- Extended Binary Coded Decimal Interchange Code
- [eb’si:dik]
- 用一个字节来编码
- 配合最新发布的8-bit计算机
- 符号数量提升
- 前面是控制字符
- NUL
- DEL
- CR(还记得什么意思么?)
- NL(还记得什么意思么?)
- 黑暗森林 开始 慢慢成型

- 但是注意 这EBCDIC和ascii 还不一样
- 黑暗森林后面 是 字母和数字
- 字母排布 仍然 兼容BCDIC
- 字符编码 并不连续
- i和j之间的序号 相差不止1
向后兼容
- 字母部分 确实是 向后兼容的

- 不过 这套排布方式
- 和ascii 并不一致
- 虽说 这种编码
有缺陷- 但是
已经形成了 行业标准
- 但是
- ascii究竟是 如何 从
无到有- 能否打败 强大的蓝色巨人IBM
- 在编码大战中 笑到最后 呢?
总结
这次 回顾了 字符编码的 进化过程
- IBM 在数字化过程中
- 作用 非常大
- IBM 的 BCDIC 有 黑历史
- IBM 在数字化过程中
6-bit的 BCDIC
- 直接进化成 8-bit的 EBCDIC
- 补全了 小写字母 和 控制字符
在ibm就是信息产业的年代
- ibm的标准 怎么最终
- 没有成为 行业的标准 呢?
- ibm的标准 怎么最终
我们下次再说!
蓝桥->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]python0084_扩展BCD_EBCDIC_ibm的发家史的更多相关文章
- 论C++的发家史以及相对其他语言优缺
C++发家史: 最初导致C++诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样 ...
- GFW的前世今生,一部GFW之父方滨兴的发家史
http://whu.myubbs.com/thread-96390-1-1.html方滨兴(1960年7月17日-),男,中国共chan党党员,中国工程院院士,全国人大代表,中国科学院信息工程研究所 ...
- 原来Java的发家史是这么回事
java的诞生: 1991 年Sun公司成立了一个计算机开发小组,由James Gosling等人开发一款希望用于控制嵌入在有线电视交换盒.PDA等的微处理器的计算机语言,本来他们想直接扩展C++,后 ...
- Windows 8/7下还原系统默认扩展名打开方式类型
在百度知道上如果你搜“改回选错的打开方式”,看到的大多数都是XP系统的方法,不管是批处理还是别的方法,但适用于Windows 8/7的只有修改注册表的方法. 因为Windows 7你也就根本找不到[工 ...
- win10中显示资源管理器扩展
一年前从有两台机器win7升级到win10,一台上装了我常用的资源管理器扩展setExBar,但另一台没有.升级后原来有插件的依然默认显示插件,我在另一台机器上安装了setExBar时默认不显示.如果 ...
- 浅谈Hybrid技术的设计与实现
前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发 ...
- Hybrid技术的设计与实现(转)
浅谈Hybrid技术的设计与实现 前言 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而 ...
- 浅谈Hybrid技术的设计与实现(转)
前言 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本.高效率.跨平台等特性 ...
- (转)浅谈Hybrid技术的设计与实现
转载地址:https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hyb ...
- 浅谈Hybrid技术的设计与实现【转】
https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术 ...
随机推荐
- vue3 如何在 jsx中使用 component 组件
component 组件不像其它的内置组件(tansition.transitionGroup),可以直接从 vue 中直接导出,所有要在 jsx 使用component就要使用 h 函数 使用 vu ...
- nc反弹中 &>、0>&1是什么意思
1.简介 本文结合一些参考文章以及作者个人理解解释Linux的bash反弹命令中的 &>.0>&1 观点有误,欢迎指出! 目标讨论命令:bash -i >& ...
- Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤)
1. Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤) @ 目录 1. Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤) 每博一文案 2. 大概的实现步骤概 ...
- Android OpenMAX(七)OMX Service
上一篇文章我们分析了Android使用OMXStore来管理平台上的软件和硬件编解码组件,这一篇我们再向上一层了解应用层是如何获取调用OMXStore管理组件的.本篇文章代码参考自: framewor ...
- WPF 不透明蒙板概述
本文内容 先决条件 使用不透明蒙板创建视觉效果 创建不透明蒙板 将渐变用作不透明蒙板 显示另外 4 个 不透明蒙板能够使部分元素或视觉对象透明或部分透明. 要创建不透明蒙版,请将 Brush 应用于元 ...
- 将.net core api 部署成windows服务
将.net core api 部署成windows服务 参考 https://blog.csdn.net/qq_38762313/article/details/103311944 将NSSM解压 ...
- nginx002: NGINX的环境变量,基本命令参数,目录关系及gzip优化
NGINX的环境变量,基本命令参数,目录关系及gzip优化 添加环境变量 nginx命令执行方式 nginx [选项] [参数] 通过编译安装的nginx 默认是没有环境变量的,如何设置环境变量,让n ...
- REACT 前端界面提交
在react项目中安装代理中间件 setupProxy.js文件 const { createProxyMiddleware: proxy } = require('http-proxy-middle ...
- vuex做购物车功能
先创建一个cart组件 <template> <div> <ListItem></ListItem> </div> </templat ...
- minos 2.1 中断虚拟化——ARMv8 异常处理
首发公号:Rand_cs 越往后,交叉的越多,大多都绕不开 ARMv8 的异常处理,所以必须得先了解了解 ARMv8 的异常处理流程 先说一下术语,从手册中的用词来看,在 x86 平台,一般将异常和中 ...