¿Cómo puedo convertir lo siguiente?
2934 (entero) a B76 (hexadecimal)
Déjame explicarte lo que estoy tratando de hacer. Tengo ID de usuario en mi base de datos que se almacenan como enteros. En lugar de que los usuarios hagan referencia a sus ID, quiero dejar que usen el valor hexadecimal. La razón principal es porque es más corta.
Entonces, no solo necesito ir de entero a hexadecimal, sino que también necesito ir de hexadecimal a entero.
¿Hay una manera fácil de hacer esto en C #?
c#
hex
type-conversion
codette
fuente
fuente
Integer
implementación de acortamiento? Si el único objetivo es hacer que la identificación de usuario sea lo más breve posible, me interesaría saber si hay alguna otra razón aparente por la que requiera específicamente la conversión hexadecimal, a menos que, por supuesto, la haya perdido. ¿Es claro y conocido (si es necesario) que las ID de usuario son en realidad una representación hexadecimal del valor real?Respuestas:
de http://www.geekpedia.com/KB8_How-do-I-convert-from-decimal-to-hex-and-hex-to-decimal.html
fuente
Utilizar:
Consulte Cómo convertir entre cadenas hexadecimales y tipos numéricos (Guía de programación de C #) para obtener más información y ejemplos.
fuente
Pruebe lo siguiente para convertirlo a hexadecimal
Y de regreso
fuente
fuente
Sin embargo, realmente cuestiono el valor de esto. Su objetivo declarado es hacer que el valor sea más corto, lo que será, pero ese no es un objetivo en sí mismo. Realmente quieres decir que sea más fácil de recordar o más fácil de escribir.
Si quieres decir más fácil de recordar, entonces estás dando un paso atrás. Sabemos que sigue siendo del mismo tamaño, simplemente codificado de manera diferente. Pero sus usuarios no sabrán que las letras están restringidas a 'A-F', por lo que la ID ocupará el mismo espacio conceptual para ellos que si se permitiera la letra 'AZ'. Entonces, en lugar de ser como memorizar un número de teléfono, es más como memorizar un GUID (de longitud equivalente).
Si quiere decir escribir, en lugar de poder usar el teclado, el usuario ahora debe usar la parte principal del teclado. Es probable que sea más difícil de escribir, porque no será una palabra que sus dedos reconozcan.
Una opción mucho mejor es permitirles elegir un nombre de usuario real.
fuente
Al maleficio:
Para int:
fuente
Creé mi propia solución para convertir int a cadena hexadecimal y viceversa antes de encontrar esta respuesta. No es sorprendente que sea considerablemente más rápido que la solución .net ya que hay menos sobrecarga de código.
Código de tiempo:
Resultados:
fuente
NET FRAMEWORK
PASCAL >> C #
Algo de la vieja escuela muy antiguo procedimiento de pascal convertido a C #
fuente
Imprimir entero en valor hexadecimal con relleno de cero (si es necesario):
https://docs.microsoft.com/en-us/dotnet/standard/base-types/how-to-pad-a-number-with-leading-zeros
fuente
int a hex:
hexadecimal a int:
fuente