2010-09-02 63 views

回答

2

實際上正確的(=十六進制)值是A090。我不在乎它是否是ushort,你想要顯示的十六進制等效。

你提供的代碼片段已經做到了這一點。一個字節是「A0」,另一個是「90」。你只需要得到正確的訂單。

另一種方法是讓.NET做的工作

String.Format("{0:X}", 41104); 

正如你可以看到它不是一個真正的數據轉換,而是顯示一個不同的方式。

+0

也有一些值必須轉換成ULONG,一些值必須USHORT轉換和薩姆應轉換爲短數據類型如何轉換這些類型的?日Thnx – dankyy1 2010-09-02 10:53:41

+1

我搜索結果爲 string.Format(「{0:X16}」,41104)用於ushort string.Format(「{0:X32}」,41104)for ulong string.Format( 「{0:X8}」,41104)爲字節 可以使用 – dankyy1 2010-09-02 11:03:12

+1

另外'Convert.ToString(,16)'。 – 2013-07-27 19:58:19

1

您需要重新排列字節:

byte[] bytes = BitConverter.GetBytes(41104); 
if (BitConverter.IsLittleEndian) 
{ List<byte> tmp = new List<byte>(); 
    tmp.AddRange(bytes); 
    tmp.Reverse(); 
    bytes = tmp.ToArray(); 
} 
+0

thnx爲您的答覆。在上面的代碼示例中()在tmp被定義後忘記了,因此代碼塊應該與第3行一樣 列表 tmp = new List (); – dankyy1 2010-09-02 10:43:25

相關問題