0

我在 Mathematica 中有一个数字,一个很大的数字。我什至用 16 进制得到了这个数字OutputForm[]。我基本上是在尝试以十六进制格式将数字写入文件。

请记住,我在这些示例中使用的是 123456 而不是我的 70,000 位数字。

每当我使用一个简单的Put[123456, "file.raw"]命令编写文件时,我都会得到一个原始数据文件,其中3132333435360A包含以行结尾的实际数据。

如果我使用Put[OutputForm[BaseForm[123456, 16]], "file.raw"]命令,我会得到一个原始数据文件,其中包含十六进制格式的数据,31653234300A202020202031360A但仍未写入原始数据。

我想要作为数据转储的数字的十六进制形式。

我尝试过Export,BinaryWriteDumpSave, 但无法弄清楚。

我只是觉得头疼,我猜是因为我看不到我需要做的事情。

我尝试过的一件事是:

Export["file.raw", 123456];

但是文件不够原始。我的意思是有标题数据和额外的废话。

很想得到这个工作谢谢。

4

2 回答 2

0

请让我们知道您希望在输出文件中看到什么,以及您想用它做什么。您想要人类可以阅读的东西,还是计算机可以使用的特定格式的东西?请举个例子。

这两个正确使用的示例Put[]提供了包含与您的输入的文本表示相对应的 ASCII 字符的文件,并且这些文件是人类可读的。

于 2012-05-01T12:40:40.240 回答
0

我认为您正在寻找的是 IntegerString[_,16]:

In[33]:= IntegerString[123456, 16]

Out[33]= "1e240"

str = OpenWrite[];
WriteString[str, IntegerString[123456, 16]];
Close[str];

FilePrint[%]

1e240

(使用 WriteString 而不是 Put 避免了字符串字符

于 2012-05-02T20:33:05.163 回答