Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Portada » Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 1 mensaje ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Jue Ago 31, 2006 7:00 am
Mensajes: 264
Ubicación: Cali - Colombia

Nota Publicado: Sab Sep 04, 2010 7:58 pm 
Arriba  
Hola a todos de antemano gracias por la atención y su ayuda.

Buen tengo un programa en Java el cual debe de procesar un String el cual almacena un valor Hex y debo de pasarla a Int.

Tengo los siguientes valores:
Código:
Valor A "c2cfb800"
Valor B "f6d493ef"


Pude pude gracias a un conocido hacer esto en C
Código:
#include <stdio.h>
#include <string.h>

int main()
{
         int                    nCode;
         float          dbLat;
         float          dbLng;

         memcpy(&nCode, "\xc2\xcf\xb8\x00",4 );
         printf( "\n[0] nCode , %i", nCode  );

         memcpy(&nCode, "\xf6\xd4\x93\xef",4 );
         printf( "\n[1] nCode , %i", nCode  );

   return 0;
}



Su respectiva salida es:
Código:
[0] nCode , 12111810
[1] nCode , -275524362


Ahora me llevo la idea para java y me encontre con el primer caso que resolvi, esto del "memcpy", no quiero explicar lo que entendi por que me da pena, ya que mi explicacion es medio inventada segun mis conocimientos entoces podria exponerme a decir una bestialidad.

El caso es que los valores en Java debo de ingresarlos de la siguiente forma es decir así:

Código:
Valor A es "ef93d4f6";
Valor B es "00b8cfc2";


Bueno el cuento es que hice el paso de hex a int así en Java:
Código:
  int intHex  = 0xef93d4f6;
  int intHex1 = 0x00b8cfc2;


Y me dio los mismos resultados que en el programa en C.

Pero como el problema es que los datos A y B, me llegan en String entoces muy ingeniosamente segun yo hice esto:
Código:
   int intHex1 = Integer.valueOf("ef93d4f6" + 2, 16);
   int intHex2 = Integer.valueOf("00b8cfc2" + 2, 16);


Y me sucede esto, para la línea
Código:
 int intHex1 = Integer.valueOf("ef93d4f6" + 2, 16);


Código:
Exception in thread "main" java.lang.NumberFormatException: For input string: "ef93d4f62"
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
   at java.lang.Integer.parseInt(Integer.java:461)
   at java.lang.Integer.valueOf(Integer.java:528)



Y para la linea :
Código:
   int intHex2 = Integer.valueOf("00b8cfc2" + 2, 16);


El resultado que me dio fue:
Código:
193788962  y el valor que deberia dar es 12111810


Y aquí quede perdido en el limbo.

Gracias por la ayuda.

Editado -- Dom Sep 05, 2010 3:58 am --

Hola bueno solucione el problema implementando esta clase. Ver Link :)

Salu2.

_________________
ceduardo
[Linux USER #462524 ][Debian]
http://www.calinuxeros.org
IRC: irc.freenode.net Channels: (#debian-es – #debian)

 Perfil  
Mostrar mensajes previos:  Ordenar por  
 [ 1 mensaje ] 
Nuevo tema Responder al tema

Saltar a:  


 Temas relacionados   Autor   Respuestas   Vistas   Último mensaje 
Problema deprecated conversion from string constant to ‘char*’

en Programación

oliver_87

4

6724

Dom Ene 09, 2011 11:29 pm

codestation Ver último mensaje

conversión de videos

en Vídeos

doc

5

569

Jue Jun 21, 2018 2:55 am

neurus Ver último mensaje

Conversion de php5 a php7

en Programación

lesthersrv

5

527

Dom Ene 28, 2018 10:55 pm

elhui2 Ver último mensaje

Dos preguntas en Java

en Programación

Arion

2

400

Dom Nov 07, 2010 2:07 pm

akodo Ver último mensaje

web services en java

en Programación

deca1987

0

702

Jue Sep 24, 2009 1:18 am

deca1987 Ver último mensaje



¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC + 1 hora [ DST ]
Traducción al español por Huan Manwë
phpBB SEO