elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  CurrencyToHex ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CurrencyToHex ?  (Leído 2,310 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
CurrencyToHex ?
« en: 9 Noviembre 2010, 04:52 am »

Hola como puedo convertir un valor Currency en Hexadecimal?
con la función Hex de vb me da desbordamiento

Debug.Print Hex(4294967295#)

Saludos.


En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #1 en: 9 Noviembre 2010, 05:23 am »

Soluciando

Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4. 'Debug.Print LongToCurrency(-1)
  5. 'Debug.Print CurrencyToLong(4294967295#)
  6. Debug.Print BigHex(4294967295#)
  7.  
  8. End Sub
  9.  
  10.  
  11. Private Function BigHex(ByVal value As Currency) As String
  12.    BigHex = Hex(CurrencyToLong(value))
  13. End Function
  14.  
  15. Private Function LongToCurrency(ByVal lVal As Long) As Currency
  16.    If lVal < 0 Then
  17.        LongToCurrency = 4294967296# + lVal
  18.    Else
  19.        LongToCurrency = lVal
  20.    End If
  21. End Function
  22.  
  23. Private Function CurrencyToLong(ByVal lVal As Currency) As Long
  24.    If lVal > 2147483647# Then
  25.        CurrencyToLong = lVal - 4294967296#
  26.    Else
  27.        CurrencyToLong = lVal
  28.    End If
  29. End Function
  30.  

Saludos.


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #2 en: 9 Noviembre 2010, 07:22 am »

.
Las funciones estan mal, esageradamente mal ya que el --1 en representacion negativa es FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF... etc., es decir el complemento del numero N con respecto al valor maximo...

Prueba de lo dicho:

Código
  1.  
  2. Debug.Print BigHex(4295017296#)  ' // Return    C350  siendo que debe de ser en Hexadecimal --> 10000C350
  3.  
  4.  

P.D.: no funciona Mod con los currency ¬¬"

Dulces Lunas!¡.
« Última modificación: 9 Noviembre 2010, 08:00 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #3 en: 9 Noviembre 2010, 07:55 am »

.
si puedes hacer la obtencion del residuo de una divicion  ( Mod ) con un valor de mas del valor maximo de un tipo long como el que acabas de poner puedes modificar esta funcion

http://infrangelux.sytes.net/Blog/index.php?option=com_content&view=article&id=20:bdec2basen&catid=2:catprocmanager&Itemid=8

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #4 en: 9 Noviembre 2010, 08:03 am »

Hola en realidad 4295017295 es el valor maximo  por eso esa funcion me sirve, quizas esta mal decir que es un valor Currency

Es valor maximo del registro de windows en los tipos REG_DWORD

Saludos.
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #5 en: 9 Noviembre 2010, 08:06 am »

ahora que veo un poco mejor es utilzar la parte negativa para ampliar la capacidad de un long
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #6 en: 9 Noviembre 2010, 08:10 am »

.
Solo menciono este codidigo fuente por si alguien quiere algo mas...

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=68710&lngWId=1

ahora que veo un poco mejor es utilzar la parte negativa para ampliar la capacidad de un long

Simulando el Unsigned long de C++, si esa es buena...

Ducles Lunas!¡.
En línea

The Dark Shadow is my passion.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: CurrencyToHex ?
« Respuesta #7 en: 9 Noviembre 2010, 17:56 pm »

HOLA!!!

No se si les sirva pero encontre esto en la red. No se si es lo que buscan pero yo que se, quise ayudar en algo.

Código
  1. Public Function Hex2Currency(HexCurrency As String) As Currency
  2.    Dim s As String
  3.    Dim i As Integer
  4.    ' capture error
  5.    On Error GoTo ErrorHandler
  6.    SaveErrNum = 0
  7.    ' intitialise
  8.    s = "&H"
  9.    ' create hex string from each char
  10.    For i = 1 To Len(HexCurrency)
  11.         ' high order nibble
  12.        s = s & Hex((Asc(Mid(HexCurrency, i, 1)) And &HF0) / 16)
  13.        ' low order nibble
  14.        s = s & Hex(Asc(Mid(HexCurrency, i, 1)) And &HF)
  15.    Next i
  16.    ' hex to currency
  17.    Hex2Currency = CCur(s)
  18.    Exit Function
  19. ErrorHandler:
  20.    Hex2Currency = 0
  21.    SaveErrNum = 1
  22. End Function

Fuente: http://www.tek-tips.com/viewthread.cfm?qid=1444740&page=77

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines