URE foro pequeñas
Visualizador de hex...
 
Notificaciones
Limpiar todo

Visualizador de hexadecimal en binario

EA2ET
Mensajes: 6688
#21667  - 28 septiembre, 2012 08:56 

Hola buenas.

Estoy buscando un programa, para ubuntu a ser posible, que sea capaz de aceptar una cadena larga de representación hexadecimal y la transforme en su representación binaria, y viceversa.

He encontrado el Khexedit, pero solo admite 32 bits.

82E0AEEE08380000 1000001011100000101011101110111000001000001110000000000000000000

Agradezco ayuda.

Si quieres buenas respuestas haz buenas preguntas

73 de Angel, EA2ET.

ResponderCitar
Inició el tema
EA4EOZ
Mensajes: 1462
#202795  - 28 septiembre, 2012 13:55 
EA2ET escribió:
Hola buenas.

Estoy buscando un programa, para ubuntu a ser posible, que sea capaz de aceptar una cadena larga de representación hexadecimal y la transforme en su representación binaria, y viceversa.

He encontrado el Khexedit, pero solo admite 32 bits.

82E0AEEE08380000 1000001011100000101011101110111000001000001110000000000000000000

Agradezco ayuda.

Bueno, 82E0AEEE08380000 son 64 bits :P

No se si te servirá, pero prueba con este par de scripts de bash. Crea los ficheros de texto con el siguiente contenido:

hex2bin:

Escribió:
#/bin/bash

# Comprueba argumentos
if [ $# -ne 1 ]
then
echo "Uso: hex2bin hexstring"
exit 1
fi

digits=${#1}
string=${1^^}

#Conversion
for (( i=0; i <= digits-1; i++ ))
do
hd=${string:i:1}
case $hd in
0) echo -n 0000
;;
1) echo -n 0001
;;
2) echo -n 0010
;;
3) echo -n 0011
;;
4) echo -n 0100
;;
5) echo -n 0101
;;
6) echo -n 0110
;;
7) echo -n 0111
;;
8) echo -n 1000
;;
9) echo -n 1001
;;
A) echo -n 1010
;;
B) echo -n 1011
;;
C) echo -n 1100
;;
D) echo -n 1101
;;
E) echo -n 1110
;;
F) echo -n 1111
;;
*) echo -n ????
;;
esac
done
echo

Bueno, como ya habrás deducido, B) es B y ) juntos.

bin2hex:

Escribió:
#/bin/bash

# Comprueba argumentos
if [ $# -ne 1 ]
then
echo "Uso: bin2hex binstring"
exit 1
fi

# Longitud string multiplo de 4, relleno con ceros a la izquierda
string=$1

while [ $(( ${#string} % 4)) != 0 ]
do
string=0$string
done

#Conversion
digits=${#string}
for (( i=0; i <= digits-1; i=i+4 ))
do
nibble=${string:i:4}
case $nibble in
0000) echo -n 0
;;
0001) echo -n 1
;;
0010) echo -n 2
;;
0011) echo -n 3
;;
0100) echo -n 4
;;
0101) echo -n 5
;;
0110) echo -n 6
;;
0111) echo -n 7
;;
1000) echo -n 8
;;
1001) echo -n 9
;;
1010) echo -n A
;;
1011) echo -n B
;;
1100) echo -n C
;;
1101) echo -n D
;;
1110) echo -n E
;;
1111) echo -n F
;;
*) echo -n ?
;;
esac
done
echo

Dales permisos de ejecución:

Escribió:
chmod 755 bin2hex hex2bin

Déjalos en el directorio actual o ponlos en algún lugar del path. Si los usas en el directorio actual no olvides de anteponer el ./ antes de ejecutarlos. Cuando los tengas listos, pruébalos:

Escribió:
eoz@AspireOne ~ $ hex2bin FA65C89BCD3A1DF82E0AEDADEEE0838406023001
1111101001100101110010001001101111001101001110100001110111111000001011100000101011101101101011011110111011100000100000111000010000000110000000100011000000000001

eoz@AspireOne ~ $ bin2hex 00101010110101001111101010101000101010110101111101010100000101111101010100011110101010101010111010010100100000111000001010101101001011101010001111110101010110100010101011110101010100001010101111101010101011111101010101010
055A9F55156BEA82FAA3D555D2907055A5D47EAB455EAA157D55FAAA

eoz@AspireOne ~/ $

Creo que funcionan bien... espero que te sirvan para algo.

73!

ResponderCitar
EA2HA
Mensajes: 2800
#202859  - 28 septiembre, 2012 16:46 

:unsure:

EA2HA Humberto

ResponderCitar
EA2ET
Mensajes: 6688
#202871  - 29 septiembre, 2012 11:23 

Humberto, gracias por el intento y por el cumplido, ya veo la respuesta de Miguel Angel, pero para seguirle a este hay que coger carrerilla.

Miguel Angel, se me olvido decir que para Ubuntu gráfico. :laugh: :laugh:

82E0AEEE08380000 1000001011100000101011101110111000001000001110000000000000000000 no tiene relación con Khexedit, es solo un ejemplo de lo que quería, en este caso lo he representado al revés, ya que en realidad es una conversión a mano del binario a hexadecimal, y seguro que ya has deducido el objeto original que produce ese binario.

Tengo muchas dudas de como generar y ejecutar los programas que me has puesto (justo sé abrir la consola), pero en cuanto tenga un rato lo pruebo (ahora estoy muy liado leyendo el foro). :laugh:

Gracias por la aportación, creo que eso me servirá.

Si quieres buenas respuestas haz buenas preguntas

73 de Angel, EA2ET.

ResponderCitar
Inició el tema
EA3DWU
Mensajes: 23
#202956  - 29 septiembre, 2012 23:23 

Hola Angel,

Habria un comando mas simple que te podria ayudar, eso si, en una consola y usando el pequeño programa "bc".

Abrimos una consola de linux y tecleamos lo siguiente
echo "obase=16;ibase=2; 1000001011100000101011101110111000001000001110000000000000000000" | bc

Le damos al enter, y esto devuelve:
82E0AEEE08380000

Esto viene a decir que le indicamos al programa "bc" que la entrada de datos va ser hexadecimal (obase= 16"), que la salida la queremos en binario (ibase2), luego el chorizo de unos y ceros que quieres convertir.
le damos al enter y ya tenemos el resultado. Cambiando la base de tipos de datos, podemos invertir la conversión.

Saludos !!
Ricard

ResponderCitar
EA2ET
Mensajes: 6688
#203014  - 30 septiembre, 2012 00:30 

Ricard, muchas EE8BA2E3AE8A2E2A.

Si quieres buenas respuestas haz buenas preguntas

73 de Angel, EA2ET.

ResponderCitar
Inició el tema
EA4EOZ
Mensajes: 1462
#202957  - 30 septiembre, 2012 11:58 
EA2ET escribió:
Miguel Angel, se me olvido decir que para Ubuntu gráfico. :laugh: :laugh:

Linux sin consola es como un equipo de radio sin antena...

Prueba a bajar y ejecutar esto:

binhex

Posiblemente deberás darle permisos de ejecución. Supongo que te servirá.

73!

ResponderCitar
EA3DWU
Mensajes: 23
#203018  - 30 septiembre, 2012 15:43 

Hola Angel,
Para el sistema grafico, podria hacerlo funcionar bajo gambas. Si te sirve, un dia de estos me pongo a ver que tal sale. Tambien puedes hacer esto:
Copia esto a un archivo de texto, le das el nombre que quieras, permisos de ejecución y correlo en un terminal o bien haciendo doble click en el archivo.

#!/bin/bash
echo 'CONVERSOR BINARIO A HEXADECIMAL'
echo 'Introducir el valor binario:'
read binario
echo "obase=16;ibase=2;$binario" | bc
echo 'FIN'
read

Saludos !

ResponderCitar
EA2ET
Mensajes: 6688
#203045  - 30 septiembre, 2012 18:16 

Me estoy volviendo majara para ejecutar archivos de script (ya me habéis picado).

Si inicio el fichero con #!/bin/bash me da error

bash: ./b2h_EOZ1: /bin/bash^M: intérprete erróneo: No existe el archivo o el directorio

Si inicio con #/bin/bash (sin !) me da algún otro error aunque empieza a correr el fichero, ejecuta los echos, e incluso el read aunque da error.

Me he asegurado de que el fichero tiene permisos de ejecución y que está en el directorio donde se ejecuta la consola.

Si quieres buenas respuestas haz buenas preguntas

73 de Angel, EA2ET.

ResponderCitar
Inició el tema
EA3DWU
Mensajes: 23
#203058  - 30 septiembre, 2012 21:08 

Hola Angel,

Es extraño, ya que a mi me ha funcionado correctamente el script.
De todas maneras, repasa de nuevo el script que no te hayas dejado algo en el camino,como algún punto y coma entre los parámetros o las dobles comillas.....
A veces uno se despista. :unsure:

Por cierto, que versión de Ubuntu tienes y bajo que hardware corre ?

Otra cosa.....,como ejecutas el script?, abres primero una consola y lanzas el comando ./b2h_EOZ1 ? Lo lanzas haciendo doble click en el archivo ?

Si lo haces de la primera manera, asegurate de que estas dentro de la carpeta donde está el script, ya que la consola arranca por defecto en la /home/tu_usuario/ y esto puede provocar el error.

Si no estas dentro de la carpeta, por ejemplo que hayas creado el script en el escritorio, deberas entrar en el primero ( CD Escritorio ) y despues lanzar el script ./b2h_EOZ1

De momento no se me ocurre nada mas,

Saludos
Ricard

ResponderCitar
EA2ET
Mensajes: 6688
#203075  - 30 septiembre, 2012 23:23 

Encontrado el problema, algo que mete el editor de texto, ahora funciona perfectamente.

Miguel Angel, tu programa también funciona perfecto.

Ubuntu 11.10
Pentium 4 3.00GHz x2
1.5 GiB RAM

Si quieres buenas respuestas haz buenas preguntas

73 de Angel, EA2ET.

ResponderCitar
Inició el tema
EA4EOZ
Mensajes: 1462
#203059  - 1 octubre, 2012 00:13 
EA2ET escribió:
bash: ./b2h_EOZ1: /bin/bash^M: intérprete erróneo: No existe el archivo o el directorio

Has pasado/creado los scripts por/en un Windows y ha cambiado los retornos de carro por retornos de carro y avance de línea (el ^M) y los ha "corrompido".

Bájalos de este mensaje directamente desde Linux y no deberías tener problemas.

Añado: Pues si ya te funciona, pues eso :D

ResponderCitar
EA3DWU
Mensajes: 23
#203090  - 1 octubre, 2012 19:08 

Hola Angel, me alegro de que hayas encontrado el problema y que funcione.
De todas maneras ya se nota los que somos aprendices de los maestros ( Esto va por Miguel Angel ;) ), yo he usado una pequeño programa para realizar la conversión y el lo ha hecho todo con el lenguaje de la shell.

Me alegro si te he podido ayudar en algo.
Un saludo muy cordial para los dos!

EA3DWU
Ricard

ResponderCitar
EA2ET
Mensajes: 6688
#203212  - 1 octubre, 2012 20:07 

Sí que me habéis ayudado, sobre todo a entender un poco más de Linux.

Por cierto, no habéis hecho ningún comentario sobre lo que representan los binarios que he puesto, no sé si lo habréis pillado.

82E0AEEE08380000 1000001011100000101011101110111000001000001110000000000000000000
. / ._ / .._ _ _ / . / _

Ricard, muchas EE8BA2E3AE8A2E2A 1110111010001011101000101110001110101110100010100010111000101010
_ _. / ._. / ._ / _._. / .. / ._ / ...

Es para jugar con la Eprom de un repetidor IC-RP1510

73

Si quieres buenas respuestas haz buenas preguntas

73 de Angel, EA2ET.

ResponderCitar
Inició el tema

QDURE - https://qsl.ure.es


Imprime y confirma tus QSL en tan solo tres click.

Nunca fue tan fácil y cómodo
el confirmar tus contactos.

TIENDA ONLINE URE


Publicaciones, mapas, polos, camisetas, gorras, tazas, forros polares y mucho más...

WEBCLUSTER EA4URE


Conoce el nuevo WebCluster de URE, ahora con nuevos filtros e información y compatible con GDURE