2013-04-10 55 views
27

如何將int(4字節)轉換爲不帶週期的十六進制(「XX XX XX XX」)?將int轉換爲帶前導零的十六進制

例如:

i=13 hex="00 00 00 0D" 

i.ToString("X")返回"D",但我需要一個4個字節的十六進制值。

+0

http://stackoverflow.com/questions/1139957/c-sharp-convert-integer-to-hex-and-back-again – Joetjah 2013-04-10 07:51:12

+0

@Joetjah這些問題的答案只提' X',OP已經知道。這個問題是關於領先的'0'數字。 – CodesInChaos 2013-04-10 07:54:12

+0

如果您找到一個,將其作爲重複項關閉是很好的,但是您目前關閉它的問題並不重複。那裏的答案建議'ToString(「X」)',它不會產生OP要求的前導零。 – CodesInChaos 2013-04-10 15:05:33

回答

48

您可以通過在X格式字符串中附加所需的十六進制數字數來指定最小位數。由於兩個十六進制數字對應一個字節,因此您的4字節示例需要8個十六進制數字。即使用i.ToString("X8")

如果您需要小寫字母,請使用x而不是X。例如13.ToString("x8")映射到0000000d

+0

哦...謝謝!我不認爲這很簡單... – user2264990 2013-04-10 08:18:16

8

試試這個:

int innum = 123; 
string Hex = innum .ToString("X"); // gives you hex 
string Hex = innum .ToString("X8"); // gives you hex 8 digit 
相關問題