[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技术 ...
随机推荐
- 微软正式发布:.NET Aspire 云原生开发框架
前言 2024年5月22日北京时间,微软正式发布全新的.NET云原生开发框架-.NET Aspire. .NET Aspire 是一个新的平台无关.语言无关的框架,旨在简化 .NET云原生服务的开发, ...
- 拼接sql 参数化 where userId in(@userIds)的问题
这里@userIds 如果 写成101,202,301翻译后的sql的where部分会是: where userId in('101,202,301'): 而不是期待的: where userId i ...
- C# Log4net 组件无法写日志 IsDebuged、IsInfoEnabled、IsErrorEnabled 全部为false
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 如果 ...
- k8s——deployment
创建deployment [root@master deploy]# kubectl create deploy nginx-deploy --image=nginx:1.7.9 deployment ...
- css作用 文本属性 颜色属性
Css作用:美化页面 各种css属性 接触的 css属性 width: height: background: Color 选择符和声明 声明包括 属性:属性值 选择符:{ 属性:属性值 } 1:文本 ...
- cookie cookie的获取
什么是 cookie cookie 是 浏览器 的 一种功能 是 浏览器 用来 存储 前端数据的一种 存储机制 ...
- MFC 好像不太智能
我的想法就是这个MFC可能十靠鼠标和点击啥的偏主力 自己配消息处理函数容易出错,一旦代码坏了,不可逆向寻找失去的代码 多以能用鼠标设计的尽量用用编译器提供的界面去设计 当然啊这个API还是要自己找 这 ...
- 双等号==与equals的区别与联系
==与equals的区别与联系: 1)对于双等号==来说,比较的是值是否相等 如果双等号比较的是基本数据类型的变量,则直接比较变量的值是否相等, 如果双等号比较的是引用类型的变量,则比较的是所指向对象 ...
- Android开发基础——真机测试错误,ADB启动不了,程序安装不了,the connection to adb is down,INSTALL_CANCELED_BY_USER...
在Android开发中,无论是真机测试还是AVD测试,都会报出这些错误.在这里,我会详细说明一下怎么会出现这些错误的,然后要怎么样才能解决这些错误. 错误一: The connection to ad ...
- vue中退出循环的方法
forEachforEach不能使用break和continue.return也无法退出循环. 使用break,会报错(报错信息:SyntaxError: Illegal break statemen ...