2010-10-25 34 views
6

¿Cómo formatear un número en un hexadecimal con un prefijo '0x'?C# Cómo formatear un número en un hexadecimal con un prefijo '0x'

Tales como:

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

he seguido este enlace: numéricos formato personalizado de Cuerdas http://msdn.microsoft.com/en-us/library/0c899ak8.aspx cadena literal delimitador: Indica que los caracteres encerrados deben copiarse a la cadena de resultado sin cambios. Pero no funciona para 'X4' (funciona para '#'), algo raro.

estoy usando en un DataGridView.DefaultCellStyle.Format, por lo que no se puede utilizar:

"0x{0:X4}", space 

Gracias. Peter

+0

Como dije, lo estoy usando en un DataGridView.DefaultCellStyle. Formatear, entonces no puedo usar esto. –

+0

¿Podría usar el formateo personalizado entonces? http://msdn.microsoft.com/en-us/library/z1cc356h.aspx –

+1

Desafortunadamente, las cadenas de formato "Estándar" ("X4") son una * alternativa * a las cadenas de formato "Personalizadas" ("0000") , entonces no puedes mezclarlos. – Gabe

Respuesta

0
+0

Hola Anurag, gracias por tu enlace. pero creo que esa solución me suena como una solución similar, aunque funciona. Creo que se nos debería permitir configurar directamente el formato en tiempo de diseño ('#' funciona, pero 'X' no) –

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

Si desea emitir 0x0020:

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