Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 深入理解二进制文件 我学习C++特别是二进制文件结构/操作,因为我对二进制文件,位,咬和十六进制数字是完全陌生的,所以我决定向后退一步,建立对这些主题的一个坚实的理解。p>_Windows_Hex_Binary Data_Bits_Hex Editors - Fatal编程技术网

Windows 深入理解二进制文件 我学习C++特别是二进制文件结构/操作,因为我对二进制文件,位,咬和十六进制数字是完全陌生的,所以我决定向后退一步,建立对这些主题的一个坚实的理解。p>

Windows 深入理解二进制文件 我学习C++特别是二进制文件结构/操作,因为我对二进制文件,位,咬和十六进制数字是完全陌生的,所以我决定向后退一步,建立对这些主题的一个坚实的理解。p>,windows,hex,binary-data,bits,hex-editors,Windows,Hex,Binary Data,Bits,Hex Editors,在我下面包含的图片中,我在一个.txt文件中写了两个单词(蓝色小偷) 原因是,当我使用hex编辑器解码文件时,我想了解信息是如何以hex格式存储的。现在,别误会我的意思,我不是想整天读十六进制格式的书来谋生,只是想对二进制文件的组成有一个基本的了解。我还知道,所有文件都有不同的结构,但只是为了理解,我想知道“蓝色小偷”和单个'(空格)是如何准确地转换为这些字符的 还有一件事,我听说二进制文件包含三种类型的信息: 标题,ftm&和数据!这只与音频、视频等多媒体文件有关吗?因为,除了这个文件中的数

在我下面包含的图片中,我在一个
.txt
文件中写了两个单词(
蓝色小偷

原因是,当我使用hex编辑器解码文件时,我想了解信息是如何以hex格式存储的。现在,别误会我的意思,我不是想整天读十六进制格式的书来谋生,只是想对二进制文件的组成有一个基本的了解。我还知道,所有文件都有不同的结构,但只是为了理解,我想知道“蓝色小偷”和单个
'
(空格)是如何准确地转换为这些字符的

还有一件事,我听说二进制文件包含三种类型的信息:


标题
ftm
&和
数据
!这只与音频、视频等多媒体文件有关吗?因为,除了这个文件中的
数据块之外,我似乎什么都看不到

文本文件中的字符编码为,在记事本中看到的每个字符对应一个字节。你看到的就是你得到的

通常,在Windows系统上,文本文件和二进制文件之间存在着严格的区别。在Unix/Linux系统上,区别更加模糊。。。你可以说事实上没有区别

在Windows系统上,这种区别是由文件扩展名强制执行的。所有扩展名为“.TXT”的文件都假定为文本文件(即,仅包含表示屏幕上可见字符的十六进制代码,其中“可见”包括空格)

二进制文件完全是另一回事。正如您所提到的,大多数都包含某种类型的头文件,描述后面的数据是如何编码的。根据数据类型的不同,这些头的大小可能会有很大的差异(同样,假定在Windows系统和Unix上由扩展指示)。一个简单的例子是用于未压缩音频的。如果你在十六进制编辑程序中打开一个WAV文件,你会看到前四个字节是“RIFF”——这是一个标记,通常被称为“幻数”,即使它是可读的文本,也表明内容是一个音频文件。较新版本的WAV规范在某种程度上使这一点变得复杂,但最初WAV头只是“RIFF”标记加上十几个字节,表示以下数据的采样率。(通过将音频CD上曲目中的原始数据与在44.1 KHz下翻录该曲目的未压缩副本所创建的WAV文件进行比较,可以看出这一点——数据应该是相同的,只是在WAV文件的开头添加了一个标题部分。)


可执行文件(编译程序)是一种特殊类型的二进制文件,但它们遵循大致相同的方案,即头文件后跟规定格式的数据。不过,在本例中,“数据”是可执行的机器代码,头文件指示文件在哪个操作系统上运行。(例如,大多数Linux可执行文件。)

问题是什么?您发现了文本文件和二进制文件之间的区别。像您的示例一样的文本文件只包含您在记事本中看到的字符——不多也不少。在Windows系统上,二进制文件是指任何不是文本文件的文件。(在Unix上,这种区别变得更加模糊……)它不必包含一个标头来标识数据的编码格式,但大多数都需要。页眉的大小和结构可能会有很大的不同。@dodgethesteamroller我只是想知道字母是如何转换的,这样我就可以了解文本十六进制转换的工作原理,如果记事本中还有更多需要了解的内容,我明白了。:)把我的评论扩展成一个答案…@dodgethesteamroller,更像是这样。然而,你正在努力。撤销dv可能:)?对不起,我不是那个否决你的人,但我可以取消到0…令人印象深刻。你或多或少描述了我想知道的。最后一个问题。我怎样才能了解更多这方面的信息?你推荐哪个链接可以帮助我理解这一点?@bluethift取决于你想走的方向。有关文件扩展名和不同数据编码方式的更多信息,请参阅。有关文本文件中字符编码的更多信息,请首先按照上面的ASCII链接,然后阅读。如果您对这些表示在硬件级别的工作方式感兴趣,可以阅读和。