Cómo cambiar a los números hexadecimales en entero largo

Seleccione idioma Seleccione idioma
Id. de artículo: 161304 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Microsoft Visual Basic tiene una función Hex$() para convertir un número en una cadena de dígitos hexadecimales. Sin embargo, no tiene ninguna función obvia a realizar la conversión inversa. En este artículo se explica cómo utilizar el Val() función para realizar el notación Hexadecimal a conversión de entero largo, + a relleno aplican reventado al evitar.

Más información

La función Val() se puede utilizar para convertir una cadena de dígitos decimales en un número. También puede utilizarse en una cadena de dígitos hexadecimales, pero tiene Para anexar los caracteres "& H" en la cadena de dígitos para que la Val() función utiliza el número correcto que se base en el proceso de conversión.

Por ejemplo:
  A = Val("1234")    ' performs decimal conversion

  A = Val("7FFF")    ' results in 7 - the F's are ignored

  A = Val("&H7FFF")  ' performs hexadecimal conversion
				

Captura de entero

Si va a asignar los resultados de la conversión en un entero largo variable, probablemente desee sólo números en el intervalo 80000000 a FFFFFFFF se traten como los números negativos. Sin embargo, no se tenga especial las precauciones, también se tratarán los números entre 8000 y FFFF como negativo.

Esto se produce debido a que se convierten números con cuatro o menos dígitos Para enteros de 2 bytes con signo. Cuando el valor intermedio de entero con signo es puede convertir en un entero largo (o 4 bytes), se propaga el inicio de sesión.

Visual Basic 4.0/Access 95 y versiones posteriores

Anexando el sufijo "&" largo a la cadena hexadecimal, incluso pequeños los números se tratan como valor Long. Lleva a cabo la siguiente función de la conversión correctamente:
      Function HexToLong(ByVal sHex As String) As Long
        HexToLong = Val("&H" & sHex & "&")
      End Function
				

Visual Basic 3.0/Access 2.0 y anteriores

El método mostrado anteriormente no funcionarán en Microsoft Visual Basic 3.0 o anteriormente para los números hexadecimales mayores o iguales a 80000000. Por favor, consulte la sección de referencias de este artículo para obtener más información.

Debido a que este problema no ocurre con números que se encuentran en el número entero Intervalo de captura, la función alternativa que se indican a continuación agrega interceptación de errores para intentar nuevo sin el sufijo "&" anexado largo:
      Function HexToLong(ByVal sHex As String) As Long
        On Error Resume Next
        HexToLong = Val("&H" & sHex & "&")
        If Err Then
          On Error Goto 0
          HexToLong = Val("&H" & sHex)
        End If
      End Function
				
Uso de cualquiera de las versiones de la función es la siguiente:
      A = HexToLong("8000")
				

Referencias

Tema de Ayuda de Microsoft Visual Basic: Val Function

Léame de Microsoft Visual Basic 4.0 tema: conversión de valores hexadecimales

Para obtener más información, consulte el siguiente artículo en Microsoft Microsoft Knowledge Base:
95431 REVISIÓN: Error de falta de coincidencia de tipo si utilizar la función VAL en valor grande

Propiedades

Id. de artículo: 161304 - Última revisión: miércoles, 16 de enero de 2013 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Enterprise Edition
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 2.0 Professional Edition
Palabras clave: 
kbhowto kbmt KB161304 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 161304

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com