ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

给自己科普记录一篇文章,关于文本文档与可执行文件,文件的理解。

2021-06-11 19:03:36  阅读:188  来源: 互联网

标签:可执行文件 文件 文本文档 计算机 0101 理解 字节 科普


记录的都是本人的理解,若干年之后回头再来看看, 不知道理解正确与否。

 

软件开发已经经历过一段时间了,但对于计算机底层的一些逻辑以及运行的模式还是非常的不理解。

就文件这一块,习惯了windows系统,总会通过后缀名来区分不同的文件,txt为文本文件,jpg为照片文件,exe为可执行文件,bat为脚本文件。

 

学了Linux以后,万物皆文件,windows文件的这些后缀名只不过是区分让不同的应用程序去操作这个文件。

 

但学过Python都知道,打开文件有两种不同的模式rt,与rb模式,一个是所谓的文本模式,一个是所谓的二进制格式。

 

在rt模式中,还可以指定encoding的参数。

 

其实这种高度封装的rt读取方式,虽然让使用者感觉带来了很大的方便,但会把人带偏,至少把我带偏了,在字符编码以及打开文件的操作,一直困惑了我很久,百度是找不到答案的,google英文,我也找不到相关资料。

 

其实从分类来讲,我自己把文件归纳了三个分类,一个就是所谓的文本文档,是给人看的,一个所谓的可执行文件,是直接给机器用的,还有一个其它的文件,是给专门的应用程序用的。虽然文本文档也是需要专门的应用打开,人类才可以看,但他就一个参数,就是编码集。

 

再来回来,虽然我前面分了三大类,但只要放在电脑内存执行或者保存到硬盘里面的,都是0101的二进制信息,这句话,听着简单,其实我花了很久的时间才理解。

 

我们编程Python,C,就算汇编,写的都是文本文档,文本文档也是最基本的人类能够简单看懂的文件。但文本文档对于计算机来说根本就是天书,这些文字通过编码集保存在硬盘的0101,计算机无法理解,所以需要通过编译或者解释器,转换成计算机能够理解的信息。

 

虽然无论什么文件保存形式都是0101,但文本文件,显然是给人类使用的,我们人类不可能直接在计算机上面敲击0101来跟计算机沟通,我们通过我们自己的语言,写入信息。再通过专门的编码集存入电脑。

 

当我们写的信息也就是程序想让计算机做我们想做的逻辑时,这个时候编译器或者解释器就是翻译了,它将人类写的文件的二进制,通过专门的逻辑转换成计算机能够读懂的二进制,让计算机执行该逻辑。

 

其实任何文件都是0101的形式,Python在执行源码之前,也会先转换成字节码,交由解释器执行,其实没有字节码也没关系,只不过每次执行的时候,需要多操作一次将源码转换成字节码的过程。

 

有了这个理解,其实我们可以忘记rt模式处理文件,可以全部通过r模式来处理文本文档,而且通过直接操作二进制的字节序列,可以让我们更好的理解计算保存信息的字节流。

 

这个在C语言中我记得是通过 char xx[]来定义。

 

总的来说,Python对很多底层进行了封装,很多东西,可能你会用,但不理解为什么,其实我不是很喜欢这样的感觉,总体来说,C语言更加适合对于计算机的学习,当然我觉的汇编其实也非常不错,虽然我学了一点点就放弃了。

 

标签:可执行文件,文件,文本文档,计算机,0101,理解,字节,科普
来源: https://www.cnblogs.com/sidianok/p/14876223.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有