2013-04-10 13 views
27

Come convertire int (4 byte) in esadecimale ("XX XX XX XX") senza cicli?Converti int in esadecimale con gli zeri iniziali

ad esempio:

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

i.ToString("X") rendimenti "D", ma ho bisogno di un valore esadecimale di 4 byte.

+0

http://stackoverflow.com/questions/1139957/c-sharp-convert-integer-to-hex-and-back-again – Joetjah

+0

@Joetjah Quelle risposte citare solo ' X', che l'OP già conosce. Questa domanda riguarda il fatto di avere cifre iniziali di "0". – CodesInChaos

+0

Va bene chiudere questo come duplicato se ne trovi uno, ma la domanda che hai attualmente chiuso non è duplicata. Le risposte suggeriscono 'ToString (" X ")', che non produce gli zeri iniziali richiesti dall'OP. – CodesInChaos

risposta

48

È possibile specificare il numero minimo di cifre aggiungendo il numero di cifre esadecimali che si desidera alla stringa di formato X. Poiché due cifre esadecimali corrispondono a un byte, l'esempio con 4 byte richiede 8 cifre esadecimali. utilizzare i.ToString("X8").

Se si desidera utilizzare lettere minuscole, utilizzare x anziché X. Ad esempio le mappe 13.ToString("x8") su 0000000d.

+0

Oh ... Grazie! Non pensavo fosse così semplice ... – user2264990

8

provare questo:

int innum = 123; 
string Hex = innum .ToString("X"); // gives you hex 
string Hex = innum .ToString("X8"); // gives you hex 8 digit 
Problemi correlati