Extraño Dsbordamiento
Publicado por endless_Loop (32 intervenciones) el 20/02/2004 18:32:23
Antes de dar cualquier solucion Posible a esa funcion, que les ande, no sea cosa de que me hagan probar una cosa que NO SABEN si anda.
Esta funcion es muy simple, cupienla en un proyecto, modifiquen lo necesario, y vean que desbordamiento mas raro que dá.
Function CambiaBytes(ByVal Numero As Long) As Long
'Como el Long que se toma es un numero
'de puerto, no supera los 2 bytes
'de un long, variando entre 0 y 65535
Dim LByte As Byte 'Byte inferior [00000000][00000000][00000000][LLLLLLLL]
Dim HByte As Byte 'Byte Superior [00000000][00000000][HHHHHHHH][00000000]
'los dos ultimos bytes serán [HHHHHHHH][LLLLLLLL]
'(L y H no representan una posicion binaria, la forma en que se usa es solo para identificarlos)
LByte = Numero Mod 256
'Obtiene [LLLLLLLL] calculando el resto de la division Entera del Numero entre 256
HByte = Int(Numero / 256)
'Obtiene [HHHHHHHH] haciendo una division entera Numero \ 256
CambiaBytes = LByte * 256 + HByte
'Es raro que de Desbordamiento en la Ultima linea, ya que nisiquiera el byte superior multiplicado por 256 llega a pasar del segundo byte
End Function
Esta funcion es muy simple, cupienla en un proyecto, modifiquen lo necesario, y vean que desbordamiento mas raro que dá.
Function CambiaBytes(ByVal Numero As Long) As Long
'Como el Long que se toma es un numero
'de puerto, no supera los 2 bytes
'de un long, variando entre 0 y 65535
Dim LByte As Byte 'Byte inferior [00000000][00000000][00000000][LLLLLLLL]
Dim HByte As Byte 'Byte Superior [00000000][00000000][HHHHHHHH][00000000]
'los dos ultimos bytes serán [HHHHHHHH][LLLLLLLL]
'(L y H no representan una posicion binaria, la forma en que se usa es solo para identificarlos)
LByte = Numero Mod 256
'Obtiene [LLLLLLLL] calculando el resto de la division Entera del Numero entre 256
HByte = Int(Numero / 256)
'Obtiene [HHHHHHHH] haciendo una division entera Numero \ 256
CambiaBytes = LByte * 256 + HByte
'Es raro que de Desbordamiento en la Ultima linea, ya que nisiquiera el byte superior multiplicado por 256 llega a pasar del segundo byte
End Function
Valora esta pregunta


0