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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Dudas Generales (Moderador: engel lex)
| | |-+  número hexadecimal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: número hexadecimal  (Leído 8,441 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
número hexadecimal
« en: 26 Abril 2014, 05:21 am »

Saludos

tengo una duda de como hacer un procedimiento de conversión de un número decimal negativo a su hexadecimal, se que si el número fuera positivo con tan solo hacer divisiones sucesivas obtendría el resultado, pero cuál es el procedimiento para los negativos??

gracias


En línea

simorg
Ex-Staff
*
Desconectado Desconectado

Mensajes: 8.301



Ver Perfil
Re: número hexadecimal
« Respuesta #1 en: 26 Abril 2014, 05:46 am »

Mmm, por aquí te explican algo:

http://systeek.blogspot.com.es/2011/10/tema-2-sistemas-numericos-y-stack.html#!/2011/10/tema-2-sistemas-numericos-y-stack.html



Salu2.


En línea

Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: número hexadecimal
« Respuesta #2 en: 26 Abril 2014, 14:12 pm »

hola m@o_614 , bueno para todo lo que es cálculo manual y también a modo educativo (e intuitivo, para mí aunque haya pasos de más, me es más facil y evito errores) es operar siempre con binarios, y luego pasar los resultados al formato solicitado.

obtengo el binario del valor absoluto del decimal (sin signo) y le aplico el complemento a dos, luego lo paso a hexadecimal obteniendo así el resultado.

para pasar a binario sin hacer divisiones como indiqué en algún post, utilizo una sucesión de las potencias de dos:

Citar
.....  128 64 32 16 8 4 2 1
 

luego voy "prendiendo" los bits necesarios con unos de izquierda a derecha, dejando el resto con ceros para formar el número decimal sin signo.

ejemplo para el -131, obtengo el binario de 131, tomando dos bytes...

Citar
00000000 1 0 0 0 0 0 1 1

su complemento a dos es... (hacer complemento a uno -invertir los bits, operacióin xor- y sumarle uno al resultado. como verás quedan todos prendidos los primeros, también a modo de facilitar los cálculos simplemente se agrega un bit en uno indicando el signo negativo.)

Citar
111111111   0 1 1 1 1 1 0 1

y tomando de a cuatro bits, los paso a hexa... (si fuera a octal, van de a ternas, y completando con ceros si corresponde)

Citar
ff  7D

saludos.
(agrego) tomé dos bytes porque acabo de ver que la calculadora de windows toma el negativo todo en fff... y por ahí te confundía el resultado... lo correcto es usar el byte de datos + 1 bit indicando el signo, 0 positivo, 1 negativo... quedando entonces en papel el hexa, 1 7D. 
« Última modificación: 26 Abril 2014, 14:33 pm por Gh057 » En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Menu de transformar numero decimal a binario,octal y hexadecimal
Programación C/C++
chaarlyyyy 3 17,153 Último mensaje 30 Mayo 2010, 05:47 am
por nicolas_cof
[RETO] Comprobar si un numero dado es un numero de la suerte « 1 2 ... 5 6 »
Programación Visual Basic
Karcrack 53 21,884 Último mensaje 17 Agosto 2010, 23:58 pm
por Dessa
¿Como pasar numero y letras a hexadecimal ? « 1 2 »
Criptografía
El_Andaluz 13 17,440 Último mensaje 18 Marzo 2012, 16:37 pm
por El_Andaluz
Convertidor de número literal a número real
Programación C/C++
david_BS 0 2,427 Último mensaje 6 Mayo 2012, 21:34 pm
por david_BS
numero hexadecimal grande
Java
m@o_614 1 1,739 Último mensaje 21 Enero 2015, 07:14 am
por 3n31ch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines