卓尔高考网

x00 在二进制文件中是啥意思?

技术标签:

【中文标题】x00 在二进制文件中是啥意思?【英文标题】:What does x00 mean in binary file?x00 在二进制文件中是什么意思? 【发布时间】:2011-08-22 17:02:32 【问题描述】:

有一次我问一个人“ASCII 和二进制文件有什么区别?”

他说“二进制文件总是有 x00”

我一直在搜索这个,发现What is the meaning of x00 , x04 in php

所以结论是,ASCII 文件没有 NULL 字符?

【问题讨论】:

那个人要么不知道他在说什么,要么你误解了他(顺便说一句,这不是 XOR)。 【参考方案1】:

一个 ASCII 文件可能被读取或解释为具有以 NULL 结尾的字符串、回车符和换行符或其他控制字符,这些字符旨在被读取和执行。例如,文本阅读器可能会查找一行文本,其中一行是“在到达换行符之前看到多少个字符”

二进制文件被认为只是一个字节序列 - 它们都没有任何特殊含义,因为文本阅读器会解释它们。

x00 是特定字节值 (HEX 0) 的示例,文本阅读器可能会以特殊方式对其进行解释。

【讨论】:

【参考方案2】:

错了。 ASCII 文件有 NULL 字符。事实上,ASCII 中的每个字符串都以 NULL 结尾。

ASCII 文件是只包含 ASCII 字符 x0 - x127 的文件。

二进制文件包含数据,每个单独的字节可以是 ascii 字符、整数、指针等。这只是如何将数据写入文件以及如何将其返回。

【讨论】:

我找到了这个好网站mark0.net/hexdump.html 并上传了一个ASCII 文件,但我没有找到任何NULL 字符?或者网站可能需要修改:D 还是谢谢 只是因为一个文件没有 null 并不意味着 NULL 不是 ASCII 的一部分。根据 ASCII,它恰好是第一个 ASCII 字符:) cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/… 好。然后我很困惑。我不明白您如何通过上传一个文件并查看其内容来得出 ASCII 文件不具有 NULL 的结论? 我没有得出任何结论,我已经搜索和测试了。你这样做了吗? 这是一个旧答案,但为了记录:“ASCII 文件具有 NULL 字符”的一般性陈述具有误导性,而“ASCII 中的每个字符串都以 NULL 结尾”的陈述是错误的。 ASCII 文件只是一个仅包含 ASCII 字符的文件。它可能包含也可能不包含 NULL。 NULL 在 ASCII 文件中没有特定的含义,当然它也不会经常充当终止标记。正确的是,某些语言(例如 C)使用 NULL 来标记 RAM 中字符串的结尾。程序员可能决定在文件中也使用这种表示,但没有义务这样做。

以上是关于x00 在二进制文件中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

您可能还会对下面的文章感兴趣: