【问题标题】:Convert any file into a binary file and vice versa将任何文件转换为二进制文件,反之亦然
【发布时间】:2016-09-03 08:53:24
【问题描述】:

我已经在 StackOverFlow 网站和互联网上搜索了这个问题及其相关问题,但我仍然没有得到明确的答案。我想知道我可以使用什么软件将任何文件(关于大小)转换为包含此特定文件的零和一(仅)的文本文件,然后将包含这些零和一的文本文件转换回原始文件.如果包含零和一的文件不称为“二进制文件”,请执行我的无知,我在互联网上搜索并在维基百科中阅读了名为 [hex dump] 的软件,我不需要这些,我需要我上面提到的,谢谢大家。

【问题讨论】:

  • 你能解释一下你会用它做什么吗?新奇的价值,我可以理解,或者作为一个编程练习,但除此之外它没有多大意义。包含 0 和 1 的文本文件实际上也包含字节,它们是代表 ASCII 或 UTF 代码点 30 和 31 的数值。通过进行此更改,您将使文件大 8 倍,有什么好处?您最好将每个原始字节编码为两个十六进制数字,信息内容相同,输出仅大 2 倍,并且...您可以使用十六进制转储/查看器,并且有很多。
  • 不是复制品,不,答案不在该问题的页面中,我要求的软件不是某种编程语言的代码
  • 我知道我是否会这样做,任何文件都会变大,但我需要这个用于我的学习目的,@TessellatingHeckler

标签: file binary binaryfiles


【解决方案1】:

问题是所有文件都已经是二进制文件,您只需要一个 HEX 查看器即可查看它们的内容(例如,在 Total Commander 中,您可以使用“比较内容”功能)。

计算机世界中不存在像非二进制文件这样的东西。

HEX 表示base 16 system,您可以在程序员模式下使用简单的 Windows 计算器轻松将其转换为基于 2 的 (1,0):

在下图中,一个文本文件与它本身进行了比较,只是为了以十六进制显示它的内容。我们可以看到第一个数字是“66”;如果我们把它放到一个激活了 HEX 模式的程序员计算器中,然后我们切换到 BIN,我们将得到“1100110”,代表“f”字符。对于每个 HEX 值,依此类推。

附: 1 - 有趣的是the Computer File definition on Wikipedia 和其他网站都没有真正强调这个问题。我认为对于那些还不知道这一点的人来说,这完全是令人困惑的。在我看来,这些网站都应该在“计算机文件”定义的第一行出现“二进制”这个词。

计算机文件的最深层次是二进制数据,而不是分割成行或与二进制格式不同的信息。文件格式只是一个告诉如何存储字节的协议,只有当知道数据如何写入此特定文件的某人或某物读取或打开它时,它才成为正确的信息,比如用户或客户端软件知道该数据(字节)是如何写入的。

附: 2 - WTF? - 维基百科已将文件拆分为二进制和非二进制!感谢上帝,我不需要阅读这篇文章。


从二进制输入创建文本代表的软件,反之亦然: Windows, Online

【讨论】:

  • 大文件呢?我需要一个软件来做这个计算器的事情,另外,我需要一个包含所需文件的零和一的文本文件。
  • 这里是解决方案:stackoverflow.com/questions/2426190/…
  • 这是一个完全不同的问题的解决方案,这家伙要求 C# 中的方法,我显然要求一个可以完成这项工作的软件。
  • @Billo,抱歉,这就是您需要的:ascii-converter1.software.informer.com/1.2 - 我测试过,效果很好
【解决方案2】:

此方法适用于 bash 终端

  • 将文件转换为十六进制

    $ xxd originalFile > hexaFile
    
  • 将您的十六进制文件转换回原始文件

    $ cat hexaFile |  xxd –r > backOriginalFile
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 2020-06-05
    • 1970-01-01
    • 2023-04-03
    • 2021-06-17
    • 1970-01-01
    • 2013-04-16
    相关资源
    最近更新 更多