Je convertissez un tableau d'octets en mais il renvoie un numéro signé où je veux un numéro non signé, car je veux Pour envoyer ce numéro au serveur en tant qu'entreger pendant le cryptage et devez le déchiffrer au serveur. Si c'est un numéro signé, je peux le faire. P> S'il vous plaît n'importe quel 1 aidez-moi .......... p> Venu p> P> int code> en faisant ceci:
4 Réponses :
Java n'a pas non signé INT, vous devrez donc inverser manuellement les bits pour obtenir une valeur non signée si vous avez absolument besoin d'en avoir un. P>
Ceci de Google . P>
Un Si vous avez besoin de faire des mathématiques, convertir en un int code> est toujours un nombre signé, 32 bits en Java. Cependant, cela ne compte que si vous faites des mathématiques avec elle. Si tout ce que vous vous souciez d'être le modèle de 0 et 1 bits, ignorez simplement le signe. long code> en masquage: p> long l = j & 0xFFFFFFFFL;
Brillant! Très précis et utile!
Les types d'entiers primitifs de Java (I.e. octets, courts, int et long) sont tous signés. Mais vous pouvez travailler autour de cela.
à faire (disons) 32 bits non signés arithmétiques, faites simplement l'arithmétique prétendant que "INT" est non signé. Par exemple, comparer des valeurs 32 bits non signés est un peu plus délicate. Par exemple, 2 ** 31 - 1 code> est la plus grande valeur (signée) int code>. Si vous y en ajoutez un, vous obtiendrez -2 * 31 code>. Mais ce modèle de bit est le même que + 2 * 31 code> si vous pensez du int code> comme non signé. Cela fonctionne également pour la soustraction et la multiplication. (Je ne suis pas sûr de la division et du reste, mais les chances sont que cela n'a pas d'importance pour vous). P> -1 code> est moins que +1 code>, mais si vous interprétez -1 code> comme valeur non signée que vous obtenez + 2 * * 32 - 1 code> qui devrait être supérieur à '+1'. Vous pouvez compenser en traduisant l'inégalité (je laisse le lecteur au lecteur de la comprendre) ou en casnant les valeurs int code> sur long code>, les masquage avec 0XFFFFFFFFFL code> et les comparant comme longs; E.g. p> String str = Long.toString(((long) u1) & 0xffffffffL);
Voir aussi Stackoverflow.com/Questtions/397867/...
Chaque cellule de la matrice est traitée comme non signée INT:
private int unsignedIntFromByteArray(byte[] bytes) {
int res = 0;
if (bytes == null)
return res;
for (int i = 0; i < bytes.length; i++) {
res = (res *10) + ((bytes[i] & 0xff));
}
return res;
}
En Java, tous les types entiers (sauf de caractères) sont signés.
Quel protocole utilisez-vous? Si vous envoyez quelque chose au serveur, le "quelque chose" et comment il est envoyé est important, pas de votre représentation interne. Je pense que votre question devrait ressembler à: "Comment envoie-moi des numéros non signés à l'aide de CORBA / RMI / HESSIAN / T3 / IIOP / HTTP / .....?"