我想知道二进制格式和 ASCII 格式有什么区别。问题是我需要使用 PETSc 进行一些矩阵操作,并且我所有的矩阵都存储在文本文件中。
PETSc 有一套不同的规则来处理这些格式。我不知道这些格式是什么,更不用说我的文本文件是什么格式了。
有没有办法将一种格式转换为另一种格式?
这是一个基本问题;详细的答案将真正帮助我理解这一点。
我想知道二进制格式和 ASCII 格式有什么区别。问题是我需要使用 PETSc 进行一些矩阵操作,并且我所有的矩阵都存储在文本文件中。
PETSc 有一套不同的规则来处理这些格式。我不知道这些格式是什么,更不用说我的文本文件是什么格式了。
有没有办法将一种格式转换为另一种格式?
这是一个基本问题;详细的答案将真正帮助我理解这一点。
要回答您的直接问题,ASCII 和二进制之间的区别在于语义。
ASCII 被二进制解释为文本。只有一小部分二进制代码可以解释为可理解的字符(十进制 32-126),其他所有字符要么是特殊字符(例如换行符或系统铃声,要么完全是其他字符。)较大的字符可以是其他字母表中的字母.
您可以将一般二进制数据解释为 ASCII 格式,但如果它不是 ASCII 文本,它可能对您没有任何意义。
作为一般经验法则,如果您在文本编辑器(例如记事本,而不是 microsoft word)中打开文件并且它似乎完全由字母或主要由字母、数字和空格组成,那么您的文件可能被安全地解释为 ASCII。如果您在文本编辑器中打开文件并且它是噪音,则可能需要将其解释为原始二进制文件。
我对您要询问的程序不是很熟悉,如果我处于您的情况,我会查阅该程序的文档以找出“二进制”数据流应该采用的格式。应该有详细的描述或用于生成二进制数据的包含实用程序。如果您自己生成数据,它可能是 ASCII 格式。
如果您的矩阵在文本文件中,并且您的程序仅从二进制文件中读取,那么您可能不走运。
二进制格式只是它在内部使用的任何数据结构(或序列化格式)的原始字节。
如果没有程序本身的帮助,您几乎没有希望将文本转换为二进制文件。
如果程序有导入格式,请查找导入格式。