Pseudo-Archive Java :
Accueil -|- Visuel -|- Logistique -|- Applications réparties
La pseudo-archive Java est un service proposé par la SARL diaam informatique, et il est hébergé par la Sogid.
diaam informatique
From:           	Bruno.Zoghbi@alcatel.fr
To:             	java@u-strasbg.fr
Date sent:      	Thu, 21 Jun 2001 10:32:51 +0200
Subject:        	CORBA et JAVA , D'un byte vers un int
Send reply to:  	java@u-strasbg.fr




Bonjour,

J'utilise un bus Corba dans lequel je dois envoyer une structure définie
en C++ contenant un byte. Une fois compilé par jidl, mes idl me
fournissent bien des interfaces avec le type byte.

Malheureusement, le type meme de la donnée byte en C++ est signé. Alors
que celui de Java ne l'est pas. Alors ma première question : N'y a t il
pas un petit pb ?

J'envoie donc sur le bus une valeur comprise entre 0 et 255.
Le serveur attend quant à lui une valeur entre -128 et +127.

Ce qui fait que toute valeur comprise entre 0 et 127 est bien prise en
compte. Par contre les valeurs au dela de 128, sont transtypées en
"signed" octet.

Si j'envoie une valeur supérieure à 127, elle me sera retournée
inévitablement négative.

Alors voila ma deuxieme question :
     Comment faire pour passer d'une valeur négative sur un byte
     (représentant vers un une valeur supérieure à 127) vers sa vrai
     valeur positive supérieure à 127 ??

Voilà, désolé de vous déranger pour si peu.

Merci




     

Date sent:      	Thu, 21 Jun 2001 12:8:50 +0200
From:           	Pierre GASTON <pgas@intracom.gr>
Send reply to:  	pgas@intracom.gr
To:             	"java@u-strasbg.fr" <java@u-strasbg.fr>
Subject:        	Re: CORBA et JAVA , D'un byte vers un int


>Alors voila ma deuxieme question :
>     Comment faire pour passer d'une valeur négative sur un byte
>     (représentant vers un une valeur supérieure à 127) vers sa vrai
>     valeur positive supérieure à 127 ??
 byte num = -244
 int   unsignedValue;
unsignedValue=(num[0]>=0)?num[0]:num[0]+256
en rajoutant 256 a une valeur négative tu obtiens sa vrai valeur positive
juste apres il faut la stocker dans un int



     

Date sent:      	Thu, 21 Jun 2001 12:10:21 +0200
From:           	Pierre GASTON <pgas@intracom.gr>
Send reply to:  	pgas@intracom.gr
To:             	"java@u-strasbg.fr" <java@u-strasbg.fr>
Subject:        	Re: CORBA et JAVA , D'un byte vers un int

>Alors voila ma deuxieme question :
>     Comment faire pour passer d'une valeur négative sur un byte
>     (représentant vers un une valeur supérieure à 127) vers sa vrai
>     valeur positive supérieure à 127 ??
le num[0] du mail vient d'un copier-coller intempestif
ca marchera mieux sans le "[0]" =)

 byte num = -244
 int   unsignedValue;
unsignedValue=(num>=0)?num:num+256
en rajoutant 256 a une valeur négative tu obtiens sa vrai valeur positive
juste apres il faut la stocker dans un int

C'est fini ! Retour à l'accueil de la pseudo-archive