编码进化

回忆上次内容

  • 上次 回顾了 字符编码的 进化过程

    • IBM 在数字化过程中

      • 作用 非常大
      • IBM 的 BCDIC 有 黑历史
  • 6-bit的 BCDIC
    • 直接进化成 8-bit的 EBCDIC
    • 补全了 小写字母 和 控制字符
  • 在ibm就是信息产业的年代
    • ibm的标准 怎么最终

      • 没有成为 行业的标准 呢?

ibm

  • ibm当时 确实 如日中天

  • 主机、终端是 自己的

    • 软硬件一体
    • ibm就是 整个数字世界
  • EBCDIC编码 本身就是
    • ibm内部 编码

      • 内部 通信协议
  • 外面 根本不知道
    • 就算 知道了
    • 也只有去 被动兼容的份儿
  • 网络时代来了
    • 计算机通信 大发展
    • ibm也想让 更多主机 加入arpa网

通信

  • 通信 当中

    • 共识 非常重要
    • 如果 几台主机编码方式 彼此不通
    • 是 无法通信的

  • 最先被搞疯的 是

    • ibm内部的人

      • Bemer
  • Bemer发现
    • 统一的 字符编码

      • 在组网时

        • 重要了!!!

无奈

  • 不同的编码 实在折磨他 够呛

    • 也没有 合适的 转码程序
    • 重要的是 没有编码的声明
      • 不知道对方 用的是什么编码
  • 就好像
    • 你能听到声音
    • 但不知道 去用哪国语言 来翻译

  • 大型机市场 不止 IBM一家

    • Honeywell
    • univac
  • 事实上 9种编码方式
    • 构成了 计算机的巴别塔
    • 各个公司 各自为政
  • IBM高层 不懂技术
    • 他们 不知道EBCDIC的缺陷
    • 毕竟IBM公司 是由销售来驱动的

COBOL - 纸带

  • IBM 在统计业务的 基础上

    • 对大型的商业机构 提供 可执行程序
  • 1959年
    • IBM 定制了 编程语言COBOL

      • Common Business-Oriented Language
    • 面向商业的 通用语言
      • Bemer 参与了COBOL的制定

  • 程序 被写在ibm的卡片上

    • 是 一种自记录式的 语言

COBOL - 电传打字机

  • 输入输出设备 变成了 电传打字机
  • 存储设备 变成了 磁带

  • 可COBOL语言 到底 长什么样子 呢?

COBOL - 终端时代

  • 有了终端 作为 输入输出设备

    • 终于可以 不看打孔卡片
    • 直观地看到 COBOL语言的样子了

  • 但是 任何语言

    • 篇章段句再复杂
  • 最终 还是要 落实到
    • 一个个字母上
  • 落实到字母
    • 就有 如何对字母编码的问题

EBCDIC的问题

  • 由于 EBCDIC 是 从BCDIC 过来的

  • 由于

    • 字母本身 并不连续
  • 判断 一个字符 是不是 字母
    • 要判断6个区间
    • 总共12次判断
    • 非常麻烦!
    • 增加了
      • 很多 没有必要的逻辑
  • 这些逻辑
    • 费时费力还费电
  • IBM经理层想的是
    • 更高业绩 和 更高提成
    • 铁了心想 要将EBCDIC进行到底
  • 铤而走险了 属于
    • 有了隐患 不及时修复

      • 一错再错

Proposal

  • Bemer 在 IBM内部无法获得 经理层支持

    • 但是 又得干 很多具体的事务
  • 大型商业机构(特别是银行)
    • 不光 要记录自己的数据
    • 彼此的交易记录 也需要被记录
    • 商务过程 需要程序化
      • 无人化

  • Bemer 开始在专业杂志上发请求

    • 寻求支持

      • 期待行业中 能有一个 更好的解决方法

组织 成立

  • ANSI(American National Standards Institute)的前身

    • American Standards Association’s (ASA)
    • 成立了 X3.2 子委员会
  • 委员 来自 于
    • 各大商业巨头 一线工程师
    • 了解 技术
    • 代表 各方利益

  • 在 X3.2第一次大会 期间

    • 成立了 X3.2.4 工作组
    • 专门想 怎么去解决 编码统一的问题
  • 这就不光是 IBM家的 事情 了
    • 综合协调 各巨头的利益

发布了标准

  • 1963年 X3.2.4 工作组

    • 发布了 ASA X3.4-1963 标准

  • 这标准具体长什么样呢?

总结

  • 这次 回顾了

    • 字符编码的新陈代谢
  • ibm 曾经的EBCDIC

    • 由于 字符不连续
    • 导致 后续 出现无数问题
  • 随着 网络的发展

    • 数据交换的 需要
    • 原来的小隐患
    • 现在 产生了 巨大问题
  • Bemer 联合各方巨头

    • 想要推出

      • 字符连续的编码集
  • 这新编码集 具体长什么样 呢?

  • 我们 下次再说!

  • 蓝桥->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]python0085_ASCII之父_Bemer_COBOL_数据交换网络的更多相关文章

  1. JsRender实用教程(tag else使用、循环嵌套访问父级数据)

    前言 JsRender是一款基于jQuery的JavaScript模版引擎,它具有如下特点: ·  简单直观 ·  功能强大 ·  可扩展的 ·  快如闪电 这些特性看起来很厉害,但几乎每个模版引擎, ...

  2. vue - 父组件数据变化控制子组件类名切换

    先说当时的思路和实现核心是父子组件传值和v-bind指令动态绑定class实现 1. 父组件引用.注册.调用子组件script中引用 import child from '../components/ ...

  3. vue中通过.sync修饰符实现子组件修改父组件数据

    vue父子通讯是单向数据流,也就是子组件不能修改父组件的值,但是在一些情况下是需要这样做的. 先看官方文档: 接下来举例实现 1.实现一个双向数据绑定,子组件改变的时候,父组件也在改变 父组件 < ...

  4. 微信小程使用getCurrentPages函数操作父级数据

    微信小程使用getCurrentPages函数操作父级数据 let pages = getCurrentPages(); let prevPage = pages[pages.length - 2]; ...

  5. vue 父组件数据修改,子组件数据未修改

    页面: 父组件  <myfeedback></myfeedback>  子组件  <news></news> myfeedback.vue <te ...

  6. Vue中子组件数据跟着父组件改变和父组件数据跟着子组件改变的方法

    一,子组件数据跟着父组件改变 父组件的代码 <template> <div class="home"> <img alt="Vue logo ...

  7. 子组件获取父组件数据 propsDown, 父组件获取子组件数据 eventUp

    (一) popsDowm 三种方法获取父组件数据:被动获得(1):主动获取(2). 1.被动获得: 父组件:v-bind: 绑定变量参数和方法参数:子组件:props 接收参数.可以在模板中直接使用也 ...

  8. 用angular怎么缓存父页面数据

    angular做单页面应用是一个比较好的框架,但是它有一定的入门难度,对于新手来说可能会碰到很多坑,也有许多难题,大部分仔细看文档,找社区是能解决的. 但有些问题也许资料比较少,最近遇到过一个要缓存父 ...

  9. js子页面获取父页面数据

    做页面预览的时候,数据没有存入数据库,但是要打开一个页面进行预览,询问众大婶,原来是这样来做. 1.父页面 <input type="text" id="name& ...

  10. Vue2.x中的父组件数据传递至子组件

    父组件结构 template <template> <div> <v-girl-group :girls="aGirls"></v-gir ...

随机推荐

  1. Vue Vue-Router params 传参 为空 path定义参数 参数 param is not repeatable

    我在Vue-Router4.0.3版本上出现这个问题 因为官方 在2022年8月22日时废除了未定义的传参方式,所以必须使用定义的params. 解决办法: 在配置路由时:path路径上带上传值的ke ...

  2. 【winform】 WeifenLuo.WinFormsUI.Docking.dll 组件学习

    这个组件是用来 对窗体的布局用的,可搭建一个管理系统的ui框架. 使用例子:https://blog.csdn.net/zzzzzzzert/article/details/80791554

  3. SqlServer 死锁查询

    use master go create procedure sp_who_lock as begin declare @spid int,@bl int, @intTransactionCountO ...

  4. kubenetes中的pod删除策略 级联删除与非级联删除

    StatefulSet 有状态应用[有状态应用] 有状态:StatefulSet - 集群节点之间的关系. - 数据不完全一致. - 实例之间不对等的关系. - 依靠外部存储的应用. - 通过dns维 ...

  5. exception EXC_RESOURCE - WAKEUPS 分析(二)

    一.问题: 直播助手在使用ReplayKit2 Extension的过程中,ReplayKit2的Upload进程工作在后台模式,苹果对处于后台的进程进行了内存和CPU资源的限制. 对于内存: 每种E ...

  6. Codes 重新定义 SaaS 模式的研发项目管理平台开源版 4.5.3 发布

    一:简介 Codes 重新定义 SaaS 模式 = 云端认证 + 程序及数据本地安装 + 不限功能 + 30 人免费  Codes  是一个 高效.简洁.轻量的一站式研发项目管理平台.包含需求管理,任 ...

  7. js 实现仿百度换肤效果

    图片自行换掉即可查看效果,原理就是基于tab切换的效果实现的 效果图 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <met ...

  8. JavaSE数组

    目录 数组 概念 如何创建数组 数组的访问与迭代 二维数组 定义: 数组的声明 数组创建(会自动进行初始换为0) 数组遍历 数组 概念 ​ 在Java中,数组是一种用于存储多个相同类型元素的数据结构. ...

  9. 【WPF】Dispatcher 与消息循环

    这一期的话题有点深奥,不过按照老周一向的作风,尽量讲一些人鬼都能懂的知识. 咱们先来整个小活开开胃,这个小活其实老周在 N 年前写过水文的,常阅读老周水文的伙伴可能还记得.通常,咱们按照正常思路构建的 ...

  10. 剑指Offer-52.正则表达式匹配(C++/Java)

    题目: 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式. ...