二进制和文本文件的区别 什么样的文件叫做二进制文件

看似问题简单,好多人搞不懂真正的区别,下面我们从底层的角度给大家分析一下从C语言的角度来看,所有的文件都可以简单的分为两类:一类是文本文件,一类是二进制文件。1.文本文件:所谓文本文件,就是根据你按照字符的编码规则(比如ASCII)输入的字符,1:1的机器码文件。后缀通...

看似问题简单,好多人搞不懂真正的区别,下面我们从底层的角度给大家分析一下

从C语言的角度来看,所有的文件都可以简单的分为两类:一类是文本文件,一类是二进制文件。

1.文本文件:

所谓文本文件,就是根据你按照字符的编码规则(比如ASCII)输入的字符,1:1的机器码文件。后缀通常以结尾。txt。典型的文本编辑器是我们熟悉的记事本程序(notepad.exe)。

假设我们在记事本程序中写下下面的“abc Enter 123 Enter ABC”,并保存为一个名为a.txt的文件,如下图所示

a.txt

我们的问题是,保存之后,电脑保存的是什么样的信息?

在我们用一个可以查看底层二进制代码的程序打开它之后,我们可以看到以下信息

A.txt底层二进制代码

1 42 43 0d0a31 32 33 0d0a61 62 63 0d0a(十六进制)

根据ANSI ASII规格表

显然:41->: A,42->;b,43->;c,新行的回车,由两个控制字符0D(CR)和0A(LF)决定。其他人物依次类推。

可以看出,一个标准的ASCII文本文件按照ASCII表的编码规则转换成1:1。当然,如果您按照unicode编码,所有字符都按照两个字节代表一个字符的方式编码。在解析Unicode编码的文本文件时,需要按照两个字节为一个字符的方式将二进制转换为文本,这样才能正确解析。

可能有人会问,如果一个人把这些字符保存在word里,是文本文件吗?答案是,不会。因为word文件在保存时会添加许多特定的格式信息。我们以保存一个字符A为例,看看word 2010中保存A后底层是什么样子的。下图捕捉到了其中的一部分。

word文件底层代码截图

这只是其中的一部分,它展示了另一堆只有微软知道的代码。

2.二进制文件

二进制文件可以被认为是所有的非文本文件被称为二进制文件。

要打开二进制文件,您需要形成这种文件的程序的内置解析器来解释它们。这也解释了为什么不同的文件,如pdf,docx等。,编程时必须有相应的文档解析功能。

当然,你可以用二进制模式打开任何文本文件,因为那些代码在底层。你只需要读取每个字节,查找并转换成相应的字符进行显示,因为你知道ASCII表的规则。

本文来自吃鸡只用平底锅投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/476000.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 03-26
下一篇 03-26

相关推荐

  • 八进制转换成二进制的方法 八进制数的运算法则

    二进制和十六进制之间的转换注意:这里所说的“二进制和十六进制之间的转换”只适用于整数。我们说,一般情况下,如果要把二进制转换成十六进制,需要先把二进制转换成十进制,再把十进制转换成十六进制。相反,如果你想把十六进制转换成二进制,同样如此。以此类推,其他二进

    2023-07-22 09:10:01
    719 0
  • java二进制表示 java代码大全及详解

    最近用Go写Java反序列化相关的扫描器时,遇到了一个难点:如何获取根据命令生成的有效载荷。通过阅读现有开源工具的源代码,发现大致有以下两种解决方案。执行命令方法使用命令执行ysoserial.jar例如,一些python工具使用system和popen等函数拼接命令以获得输出。优点:最简单的

    2023-07-15 21:13:01
    490 0
  • 怎么把二进制数转换成8进制的数?

    二进制数转换成八进制数其实很简单,只是有些人不太理解。那么如何才能转化他们呢?下面简单介绍一下,供大家参考。希望对你有帮助。操作01把二进制数分成三位数,可以让数字更清晰,这样就可以给数字划界了,如图。02 02然后整理出二进制和八进制之间的数字,如图。了解了对

    2023-06-22 04:48:01
    547 0
  • 二进制在线转换成文字 二进制转十进制的方法

    在一些Java程序中,我们需要做一些一点一点的判断。实际上我们需要取任意位数(第M位到第N位)来运算。int & # 91] a = { 0,1,0,1,1,0,0,1,0,1,1,0,0,1 };如果给定一个二进制数组,我们需要把二进制从第1位到第5位转换成十进制,我们可以这样做首先把二进制数组中

    2023-06-11 00:37:01
    410 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信