编码进化

回忆上次内容

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

    • 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. .NET Core 项目Linux环境下生成二维码

    问题: 公司系统开发中,需要对企微授权链接进行二维码生成,然后向客户提供:当然,首当其冲想到的是使用ZXing.NET库进行实现,毕竟生成简单二维码也就那几句代码:然而,在本地环境中,一切都很正常,但 ...

  2. Qt-FFmpeg开发-视频播放【硬解码】(2)

    Qt-FFmpeg开发-视频播放[硬解码] 目录 Qt-FFmpeg开发-视频播放[硬解码] 1.概述 2.实现效果 3.FFmpeg硬解码流程 4.主要代码 6.完整源代码 更多精彩内容 个人内容分 ...

  3. C#中接口的显式实现与隐式实现及其相关应用案例

    C#中接口的显式实现与隐式实现 最近在学习演化一款游戏项目框架时候,框架作者巧妙使用接口中方法的显式实现来变相对接口中方法进行"密封",增加实现接口的类访问方法的"成本& ...

  4. QEMU EDU设备模拟PCI设备驱动编写

    环境安装 buildroot编译 buildroot下载,编译: 下载地址:Index of /downloads (buildroot.org) 下载版本:https://www.buildroot ...

  5. 纯css+html+js模仿elementui组件

    文件下载链接地址https://files.cnblogs.com/files/ht955/UIcomponents.zip?t=1717405975&download=true

  6. THUWC 2024 游记

    其实这个游记也没啥好写的-- day 0 上午做动车两个小时到重庆,路上玩了 1.5h 的星露谷. 下午去巴蜀中学报道试机,系统是 Ubuntu Jammy,大大的好评,只是桌面是 Xubuntu/X ...

  7. kettle从入门到精通 第二十七课 邮件发送

    1.我们平常在做数据同步的时候,担心转换或者job没有正常运行,需要加上监控机制,这个时候就会用到邮件功能. 下图是一个简单的测试邮件发送功能的转换.在kettle.properties文件中设置邮件 ...

  8. 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

    Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的.而 Mybatis 在查询关联对象或关联集合 ...

  9. TiKV 源码分析之 PointGet

    作者:来自 vivo 互联网存储研发团队-Guo Xiang 本文介绍了TiDB中最基本的PointGet算子在存储层TiKV中的执行流程. 一.背景介绍 TiDB是一款具有HTAP能力(同时支持在线 ...

  10. 增补博客 第四篇 python 中文级联菜单

    from pypinyin import pinyin, Style # 定义菜单项和对应的子菜单 menu = { "文件": { "新建": {}, &qu ...