2010-10-25 11 views
6

Come formattare un numero in un esadecimale con un prefisso '0x'?C# Come formattare un numero in un esadecimale con un prefisso '0x'

Come ad esempio:

int space = 32; 
MessageBox.Show(space.ToString("'0x'X4")); // Output 0xX4 instead of 0x0020 

Ho seguito questo link: personalizzato numerici Format Strings http://msdn.microsoft.com/en-us/library/0c899ak8.aspx letterale delimitatore di stringa: Indica che i caratteri racchiusi devono essere copiati nella stringa di risultato invariato. Ma non funziona per 'X4' (che funziona per '#'), un po 'strano.

sto usando in un DataGridView.DefaultCellStyle.Format, quindi non posso usare:

"0x{0:X4}", space 

Grazie. Peter

+0

Come ho detto, sto usando in un DataGridView.DefaultCellStyle. Formato, quindi non posso usare questo. –

+0

È possibile utilizzare la formattazione personalizzata, quindi? http://msdn.microsoft.com/en-us/library/z1cc356h.aspx –

+1

Sfortunatamente, le stringhe di formattazione "Standard" ("X4") sono un'alternativa * * alle stringhe di formattazione "Personalizzate" ("0000") , quindi non puoi mescolarli. – Gabe

risposta

0
+0

Ciao Anurag, grazie per il tuo link. ma penso che questa soluzione mi sembri una soluzione simile a un workaround, anche se funziona. Penso che dovremmo avere il permesso di impostare direttamente il formato in Design-time ('#' funziona, ma 'X' no) –

5
int space = 32; 
MessageBox.Show("0x"+space.ToString("X")); 

Se si desidera attivare 0x0020:

MessageBox.Show("0x"+space.ToString("X4")); 
1
string.Format("0x{0:x8}", ii); 
Problemi correlati