2013-07-14 125 views
-2

我有一個十六進制數字的字符串表示形式,我想獲得小端的字符串表示形式。將十六進制字符串轉換爲c中的小端字符串#

例如輸入爲: 「112C4F」

輸出應爲: 「4F2C11」

我使用C#它。

最終我來到了這一點:

string text = "3A221C"; 
int tmp = int.Parse(text, NumberStyles.HexNumber); 
var reversedBytes = System.Net.IPAddress.NetworkToHostOrder(tmp); 
var hex = reversedBytes.ToString("x"); 
var trimmed = hex.Substring(0, text.Length); 
Console.WriteLine(trimmed); 

輸出是「1c223a」

,因爲我真的不知道什麼是第三行是幹什麼我不知道它會永遠工作因爲我希望它能夠工作。我也不知道爲什麼我需要修剪多餘的零點?

+0

你目前的代碼是什麼樣的?什麼不適合你?我們希望您展示您的努力 - 我們不是一個編碼服務。 – Oded

+0

我已經嘗試了很多鑄造和從字符串,整型和數組轉換。最終我想出了這個: string text =「3A221C」; int tmp = int.Parse(text,NumberStyles.HexNumber); var reversedBytes = System.Net.IPAddress.NetworkToHostOrder(tmp); var hex = reversedBytes.ToString(「x」); var trimmed = hex.Substring(0,text.Length); Console.WriteLine(trimmed); 輸出結果是:「1c223a」 因爲我真的不知道第三行是幹什麼的我不確定它會一直工作,因爲我希望它能夠工作。我也不知道爲什麼我需要修剪多餘的零點? – tal

+0

請_edit_問題並將代碼添加到它。正如你所看到的,評論不是代碼的好地方。 – Oded

回答

4
static string LittleEndian(string num) 
{ 
    int number = Convert.ToInt32(num, 16); 
    byte[] bytes = BitConverter.GetBytes(number); 
    string retval = ""; 
    foreach (byte b in bytes) 
     retval += b.ToString("X2"); 
    return retval; 
} 
相關問題