2011-02-15 23 views
18

I tienen una variable de número entero con valor máximo de 9999.Cómo convertir un entero a cadena hexagonal de longitud fija en C#?

I se puede convertir en cadena de longitud fija (4-caracteres):

value.ToString("0000"); 

y puedo convertirlo a hex:

value.ToString("X"); 

Quiero convertirlo en una cadena hexadecimal de cuatro caracteres (rellenado con 0 a la izquierda si el valor se convierte en menos de cuatro dígitos valor hexadecimal). Intenté lo siguiente que no funcionó.

value.ToString("0000:X"); 

Bien, puedo verificar la longitud de la cadena hexadecimal y el panel izquierdo con ceros.

¿Pero hay alguna manera directa?

Respuesta

33

Utilice un número después de que el formato de X especificador para especificar el relleno a la izquierda: value.ToString("X4")

10
String.Format("{0:X2}", intValue) 
-1

Aquí hay otro método, Se puede definir una función y pasarlo 2 valores, uno el número real y el segundo es la longitud máxima para corregir. es decir

public string FixZero(string str, int maxlength) 
{ 
    string zero = "000000000000000000000000000000000000000"; 
    int length = str.Length; 
    int diff = maxlength- length; 
    string z = zero.Substring(1, diff); 
    z = z + str; 
    return z; 
} 

necesita enteros en el formato 0012, FixZero ("12", 4) o 00, FixZero ("1234", 7)

+0

os notificó [volver el 5 de noviembre] (http://stackoverflow.com/questions/4011572/how-to-load-data-using-jquery-and-json/13238275#comment18035497_13238275) sobre el requisito de que los enlaces a su propio sitio contengan una divulgación de usted, sin embargo, usted no lo han hecho, de nuevo. –

Cuestiones relacionadas