2012-05-01 80 views
0

我在Mathematica中有一個很大數目的數字。我甚至使用OutputForm[]以16位的形式得到了這個數字。我基本上試圖寫出一個數字以十六進制格式的文件。在Mathematica中寫入原始數據文件

請記住我在這些例子中使用123456而不是我的70,000位數字。

無論何時我使用簡單的Put[123456, "file.raw"]命令寫入文件,我都會得到一個原始數據文件,其實際數據3132333435360A帶有行結尾。

如果我使用Put[OutputForm[BaseForm[123456, 16]], "file.raw"]命令,我得到一個原始數據文件,其數據格式爲31653234300A202020202031360A,但仍未寫入原始數據。

我想作爲數據轉儲的數字的十六進制形式。

我試過Export,BinaryWriteDumpSave,但無法弄清楚。

我只是頭痛,我猜因爲我看不到我需要做的事情。

有一件事我也嘗試在做:

Export["file.raw", 123456]; 

但該文件沒有足夠的原料。我的意思是有是標題數據和額外的廢話。

很想得到這個工作謝謝。

+1

我不明白寫號你想創建一個文本文件,其中包含你試圖導出的數字的十六進制表示中的字符,或者是一個二進制文件,其中每個4位組表示一個十六進制數字中的一個你的號碼? –

+0

@rezwits,你能準確地定義你所需要的作爲你的「原始」輸出文件的內容嗎?例如,你想要一個字節序列,每個字節代表一個十六進制字符?正如在 - '1A5'會給出一個包含二進制00000001 00001010 00000101的文件。 –

+0

這聽起來像是你把*十六進制表示*與*二進制數據*混淆了。你可能需要'BinaryWrite'。還有其他的細微之處,比如字節順序,確切的二進制表示(你使用實數還是整數?你需要使用的最大數量是多少?) – Szabolcs

回答

0

請讓我們知道您希望在您的輸出文件中看到什麼,以及您希望使用它。你想要一個人可以閱讀的東西,或者是某種特定格式的東西,以供計算機使用嗎?請舉一個例子。

使用Put[]的兩個示例正確地提供了包含與您的輸入的文本表示相對應的ASCII字符的文件,這些文件是人類可讀的。

0

我想你要尋找的是IntegerString [_,16:

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

Out[33]= "1e240" 

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

FilePrint[%] 

1e240 

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

相關問題