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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  como llevo texto a codigo hexadecimal?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como llevo texto a codigo hexadecimal?  (Leído 3,028 veces)
0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
como llevo texto a codigo hexadecimal?
« en: 3 Enero 2013, 13:30 pm »

buenas, yo por aqui de nuevo poblando el foro con mis dudas y preguntas :P..como ya dije en otro post estoy siguien un libro y en uno de sus capitulos esta este codigo:

Código:
#include <stdio.h>

int main()
{
  char key;
 
  printf("Press any key on your keyboard:");
  key=getchar();
  printf("You pressed the %c key\n",key);
  printf("Its ASCII value is %d.\n");
  return(0);
}

mi duda es, ya que la ultima printf() muestra el valor hexadecimal del caracter que presiono en el teclado puedo hacer lo mismo con una cantidad mayor de texto pero como? solo debo modificar el tipo de variable? o requiere algun tipo de modificacion mas amplia?



saludos


En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: como llevo texto a codigo hexadecimal?
« Respuesta #1 en: 3 Enero 2013, 15:42 pm »

Si quieres sacar una cadena en hexadecimal (por cierto el especificador de formato hexadecimal es %x, no %d) solo tienes que sacar cada miembro de la cadena en hexadecimal.

Código
  1. int printhexa(const char *s)
  2. {
  3. int ret=0;
  4. while(*s)
  5. {
  6.   ret += printf("%x", *s);
  7.   s++;
  8. }
  9. return ret;
  10. }
  11.  


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: como llevo texto a codigo hexadecimal?
« Respuesta #2 en: 3 Enero 2013, 16:25 pm »

buenas, yo por aqui de nuevo poblando el foro con mis dudas y preguntas :P..como ya dije en otro post estoy siguien un libro y en uno de sus capitulos ...
Revisa con cuidado el libro para asegurarte del tipo de la variable "key", este debe ser de tipo "int" ya que ese es el valor de retorno de la función getchar.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: como llevo texto a codigo hexadecimal?
« Respuesta #3 en: 4 Enero 2013, 15:45 pm »

0xDani:

Código:
    int printhexa(const char *s)
    {
    int ret=0;
    while(*s)
    {
      ret += printf("%x", *s);
      s++;
    }
    return ret;
    }


gracias por la ayuda, pero me puedes explicar un poco tu codigo? solo puedo entender algunas lineas...


rir37
si eso es lo que dice el libro..que como las computadoras no distinguen entre A y a que ellas solo ven binario..


saludos
En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: como llevo texto a codigo hexadecimal?
« Respuesta #4 en: 4 Enero 2013, 16:14 pm »

Código
  1.  
  2. int printhexa(const char *s)
  3. {
  4.  int ret=0;
  5.  while(*s)
  6.  {
  7.     ret += printf("%x", *s);
  8.     s++;
  9.  }
  10.  return ret;
  11. }
  12.  

Bien, esta funcion recibe un puntero a la primera direccion de memoria de la cadena a imprimir, y retorna el numero de bytes escritos. Como las cadenas en C estan delimitadas con un caracter nulo ('\0' o simplemente 0) lo que hace es imprimir el primer caracter de la cadena si no es un nulo, despues pasar al siguiente caracter, incrementando el puntero (s++;), con esto hace que apunte al siguiente caracter, y vuelve a iterar.

Entretanto la variable ret va acumulando el numero de bytes escritos, que es lo que retorna printf().

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejecutar Codigo Almacenado como texto en una Base de Datos
Programación Visual Basic
Nospheratus 4 1,799 Último mensaje 3 Junio 2005, 09:00 am
por maxnet
COMO DECODIFICAR CÓDIGO Hexadecimal « 1 2 3 4 »
Hacking
hkr_1900 32 52,736 Último mensaje 31 Enero 2014, 02:24 am
por jstylee89
Problema con WDASM no esta en codigo hexadecimal
Ingeniería Inversa
Knuckle--puncher 1 1,556 Último mensaje 6 Enero 2006, 04:09 am
por pERICOTE
Editar Codigo Hexadecimal desde mi pograma VB
Programación Visual Basic
GaMeouT 8 5,259 Último mensaje 4 Febrero 2008, 12:55 pm
por Hendrix
Pasar clave WPA-PSK de hexadecimal a texto « 1 2 »
Hacking Wireless
Peddro 10 77,421 Último mensaje 2 Octubre 2012, 18:15 pm
por sferia82
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines