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
| | |-+  Como decodificar un hexadecimal en valor ordinario?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como decodificar un hexadecimal en valor ordinario?  (Leído 3,352 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Como decodificar un hexadecimal en valor ordinario?
« en: 5 Noviembre 2014, 02:28 am »

Hola, tengo este valor en hexadecimal:

Citar
E8 03 00 00

Se que equivale a 1000 en número natural, pero me gustaría saber como llegar hasta este número.

Estuve leyendo y no se me da muy bien el manejo de bytes por eso me gustaría saber cuales son las conversiones ordinarias para poder llegar a este número, por ejemplo decir que es una cadena de carácteres en hexadecimal que hay que pasar a bytes y luego a decimal y luego a ascii... algo así, entonces yo podré traducir eso en lenguaje de programación utilizando funciones nativas.

Necesito convertir este valor hexadecimal en un valor normal y un valor normal a hexadecimal, necesito hacer esto en java, php y javascript :P , tampoco busco que alguien me lo haga todo, solo necesito entender como procesar estos datos para poder implementarlo donde sea.

La función original en java que tengo en mi poder es esta:
Código:
private long toNumeric(byte[] buffer, int size)
    {
        long value = 0;
        for (int i=0; i < size; i++)
        {
            value += ((long) buffer[i] & 0xffL) << (8 * i);
        }
        return value;
    }

La cual ya me puede convertir un array de bytes en numero natural, pero ahora necesito crear una función inversa donde le de un valor numérico y me retorne un string con la cadena en hexadecimal, y como dije antes, no busco que alguien me haga la función, pero si me gustaría entender como crearla para poder implementarla.

Muchas gracias :)


« Última modificación: 5 Noviembre 2014, 02:31 am por WHK » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como decodificar un hexadecimal en valor ordinario?
« Respuesta #1 en: 5 Noviembre 2014, 05:30 am »

la forma más facil de convertir de decimal a hexa es por divisiones

algo como
Código:
//numero es el valor entero a convertir
string hexa
mientras(numero!=0){
  hexa = convertir_a_letra(numero % 16)//retorna un char del 0 al F según el valor sea del 0 al 15 + hexa
  numero /= 16
  si(numero < 16){
     hexa += convertir_a_letra(numero)
     numero = 0//para salir del ciclo
  }
}

la ejecucion seria algo
Código:
numero = 1235
-----------

numero != 0 ? si, continuar
---ciclo inicio----
1235 modulo de 16 = 3
3 a char = 3
hexa = 3
numero = 77
numero < 16 ? no
---fin ciclo---

numero != 0 ? si, continuar
---ciclo inicio----
77 modulo de 16 = 13
13 a char = D
hexa = D3
numero = 4
numero < 16 ? si
4 a char 4
hexa = 4D3
numero = 0
---fin ciclo---

numero != 0 ? no, fin


creo que ese es el motodo más simple...



En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Minusfour_cierralo_o_baneamefull


Desconectado Desconectado

Mensajes: 571


Ver Perfil
Re: Como decodificar un hexadecimal en valor ordinario?
« Respuesta #2 en: 5 Noviembre 2014, 08:13 am »

Hola, tengo este valor en hexadecimal:
E8 03 00 00
Se que equivale a 1000 en número natural, pero me gustaría saber como llegar hasta este número.

Edito: estaba al revés sería 3E8.

Como dice engel mola.

« Última modificación: 5 Noviembre 2014, 08:32 am por Bundor » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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