编码的奥秘

1、为什么1 byte = 8 bit

     因为最早的加法机就是用8bit实现的,bit 表示:binary digit ,二进制数 , byte来源于bite,为了避免与bit产生不变要的联想,改成byte

 

2、二元码的世界

    摩尔斯的编码、电报的编码等,都体现了二元码的编码思想

    计算机系统的根基在于二进制,根植于布尔代数(形式逻辑/离散数学),离不开逻辑门电路:与门,或门,与非门,或非门,反向器

 

3、组成原件

    从继电器--》真空管--》晶体管

    振荡器--》触发器--》计数器--》锁存器(写入信号)

4、ASCII编码

    大小写字母需要52个代码,0~9数字需要10个代码,已经有62个,再加上符号标点,超过了64个,这意味着需要多于6位的编码,距离128,还剩余一些,有的用来做排版,有的用来做其他语言的兼容。

    理论上ASCII是7位的二进制码,但实际实现是采用8位的。

    但是ASCII编码不支持汉语等其他语言,于是unicode,采用了16位的编码,每个字符需要2个字节,可以表示65536个字符。unicode的前128个字符是与ASCII兼容的。

5、从控制面板到键盘

    通过键盘发送信号,取代控制面板的01操作

6、文件系统

     从磁盘读取程序指令和数据,存储的东西越多,需要一个文件系统来整理。

     文件系统是指在磁盘存储器当中按文件来组织数据的方法,文件是存放在一个或多个扇区中相关数据的集合。每个文件有一个文件名作为标识,便于记住文件中包含的内容。磁盘相当于文件柜,每一个文件都有一个标识来表示文件的名称。

    每个磁道按分配块分组,每个分配块有8个扇区即1024字节。文件目录用掉2个分配块。存放文件名(最多8个字节),文件类型(最多3个字节),文件扩展,最后一个扇区数,磁盘存储表等。

     当人们在 UNIX上加一些东西时,似乎仍然有一种流行的"UNIX哲学"在引导人 们。这个哲学的其中一部分是用文本文件作为公用的文件形式。许多UNIX实用程序读取文本文件,利用它们来做一些工作,然后写入另外一个文本文件。 UNIX 的 实 用程序可以组织起来形成一个链,然后在这些文本文件上实现不同的处理。 

7、编程语言

    所有的类ALGOL语言-- 即指常用的程序设计语言,是在冯 · 诺依曼计算机体系结构基础上设计而成的。 目前主流的都是类ALGOL语言。

   

    冯·诺依曼体系:计算机应该具有尽可能大的存储器,当程序执行时,这个存储器可用来存储程序代码和数据。指令应该在存储器中顺序存放并用程序计数器来寻址,但也应该允许条件转移。这种设计思想叫作存储程序概念。代价是需要花费大量的时间从存储器中取出指令来准备执行主要特征就是:数据和指令混合存储。

    冯·诺依曼体系的计算机系统是基于存储与指令系统的,而并不是基于(类似Lambda演算的)连续运算的。

    LISP语言是非冯·诺依曼的体系。

 

8、面向对象语言的产生

      随着微处理器越来越快,内存和外存越来越大,图形用户界面也越来越流行,因由操作系统提供完整的图形编程系统就显得非常有意义,这意味着操作系统需包含有画线、画矩形、画椭圆(包括圆)和字符的A P I函数。线可以由实线或虚线或点组成;矩形和椭圆可以用不同的填充模式来填充;字符可以显示成不同字体和大小并具有不同效果,如:黑体和下划线等。图形系统负责确定如何在显示器上把这些图形对象作为点阵来显示。

      面向对象语言通常有助于编写用于图形操作系统的应用程序,因为编程人员可以用与用户感知对象的同样的方式来处理屏幕上的对象(如:窗口和按钮等)。在面向对象语言中,按钮是对象的一个例子。屏幕上的按钮有一定的尺寸和位置,并显示一些文本或小的图画,所有这些都是与对象相关的数据。与对象关联的代码确定用户何时用键盘或鼠标按下按钮,并且发送一个标明该按钮被触发的消息。

      面向对象语言并不能比传统语言多做些什么。但是编程是解决问题的方式,而面向对象语言使得编程人员能够考虑那些在结构上通常更好的不同的解决方法。

 

   

你可能感兴趣的:(编码的奥秘)