2013-04-15 27 views
2

我需要一個函數將0xFFFF(2字節)格式的十六進制值轉換爲十進制(無符號和有符號)。將十六進制字符串轉換爲數字類型並返回

例如:

0xFFFE65534(簽名)
0xFFFE-2(簽字)

我還需要4個字節,1個字節同樣的事情。

所有這些選項(3 * 2選項)我需要轉換回來 - 從十進制到十六進制(共有12個選項)。

我的功能應該是這樣的:

string Myconverter(int ByteSize, bool IsFromHextoDecimal, bool IsSigned) 
    { 
     ... 
    } 

如果有建立在執行這些轉換的功能,我想引用/鏈接。

+1

看一看【如何:轉換十六進制字符串和數值類型(C#編程指南)之間(HTTP:// msdn.microsoft.com/en-us/library/bb311038.aspx)(MSDN提供) – Nolonar

回答

3

使用Convert類中的方法將字符串解析爲數字。爲了解析您使用ToUInt16法無符號的2字節的值,並指定基地16:

ushort value = Convert.ToUInt16("0xFFFF", 16); 

使用這些方法對其他格式:

ToInt16 = signed 2 byte 
ToUInt32 = unsigned 4 byte 
ToInt32 = signed 4 byte 
ToByte = unsigned 1 byte 
ToSByte = signed 1 byte 

要格式化數爲十六進制字符串即可使用X格式(或x得到小寫字母),並指定的位數:

string formatted = value.ToString("X4"); 

這將howeve R值不要有0x前綴,所以如果你想,你必須添加:

string formatted = "0x" + value.ToString("X4"); 
相關問題