将任何文件转换为二进制文件,反之亦然

10

我在 StackOverFlow 网站和互联网上搜索了这个问题及其相关问题,但仍然没有得到清晰的答案。我想知道可以使用哪个软件将任何文件(无论大小)转换为一个只包含此特定文件的零和一的文本文件,然后将包含这些零和一的文本文件转换回原始文件。如果包含零和一的文件不叫“二进制文件”,请原谅我的无知,我在互联网上搜索并阅读了维基百科上称之为 [十六进制转储] 的软件,但我不需要这些,我需要上述内容,谢谢大家。


你能解释一下它的用途吗?我可以理解新奇性或作为编程练习,但除此之外并没有太多意义。一个包含零和一的文本文件实际上也包含字节,这些字节是表示ASCII或UTF代码点30和31的数字值。通过这样做,您将使文件变大8倍,有什么好处呢?最好将每个原始字节编码为两个十六进制数字,信息内容相同,输出只增加了2倍,并且...您可以使用十六进制转储/查看器,而且有很多这样的工具。 - TessellatingHeckler
可能是如何在C#中读取二进制文件?的重复问题。 - Movsar Bekaev
不是重复问题,那个问题页面中也没有答案。我要求的是一个软件,而不是某种编程语言的代码。 - Bilal Sulaiman
我知道如果我这样做,任何文件都会变得更大,但出于学习目的,我需要这样做。@TessellatingHeckler - Bilal Sulaiman
2个回答

6
所有的文件都已经是二进制的了,你只需要使用HEX查看器来查看它们的真实内容(例如,在Total Commander中可以使用“比较内容”功能)。在计算机世界中,不存在非二进制文件这样的东西。HEX表示十六进制系统,你可以使用简单的Windows计算器(程序员模式)将其转换为基于2的(1,0):在下面的图片中,一个文本文件已经与自身进行了比较,以显示其HEX内容。正如我们所看到的,第一个数字是“66”;如果我们将它放入一个启用了HEX模式的程序员计算器中,然后切换到BIN,我们将得到“1100110”,代表“f”字符。对于每个HEX值,都是这样的。

enter image description here

P.S. 1 - 有趣的是,维基百科关于计算机文件定义以及其他网站都没有真正强调这个问题。我认为对于不了解这个问题的人来说,这完全令人困惑。在我看来,这些网站都应该在“计算机文件”定义的第一行就正确地提出“二进制”这个词。

在其最深层次上,计算机文件是二进制数据,而不是分成行或其他二进制格式之外的信息块。文件格式只是一个协议,告诉如何存储字节,并且只有在被某个已知如何写入此特定文件中的数据(字节)的用户或客户端软件读取或打开时,它才变成适当的信息。

P.S. 2 - 什么鬼?- 维基百科将文件分为二进制和非二进制!谢天谢地我不需要读这个。

将二进制输入转换为文本表示形式以及反向转换的软件: Windows, 在线


大文件怎么办?我需要一个软件来完成这个计算器的功能,另外,我还需要一个所需文件的零和一的文本文件(仅限零和一)。 - Bilal Sulaiman
这是解决方案:https://dev59.com/unE95IYBdhLWcg3wKqyq - Movsar Bekaev
这是一个完全不同问题的解决方案,那位用户提出了一个C#方法的请求,我明确地要求寻找一款可以完成任务的软件。 - Bilal Sulaiman
@Billo,抱歉,这是你需要的东西:http://ascii-converter1.software.informer.com/1.2/ - 我测试过了,它可以正常工作。 - Movsar Bekaev

1
这种方法适用于Bash终端。
  • Convert your file to hexadecimal

    $ xxd originalFile > hexaFile
    
  • Convert back your hexadecimal file to original

    $ cat hexaFile |  xxd –r > backOriginalFile
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接