Int anonyme en Java
Je suis en train de mettre en œuvre un réseau existant protocole, qui fait un usage intensif des types de données non signé, qui ne sont pas pris en charge par Java. Ce que je fais pour chaque type de données, a choisi le prochain plus grand, de sorte que le nombre non signé peut s'insérer dans la région positive et ensuite utiliser octet décalage pour obtenir l'effet désiré. Puisque c'est à peu enclins à faire des erreurs et pour un unsigned long je continue d'utiliser BigInteger qui est beaucoup plus lourd que l'étendue des types, je me demandais si il n'y a pas une meilleure façon d'atteindre cet objectif?
source d'informationauteur cdecker
Vous devez vous connecter pour publier un commentaire.
En fonction de ce que vous faites, vous pouvez simplement traiter de long en 64 bits, la valeur et l'int comme une valeur de 32 bits. La plupart des opérations esp readInt/Long writeInt/Long travail tout de même, en ignorant le signness.
Pouvez-vous donner un exemple de l'opération que vous effectuez sur ces chiffres, et peut-être, nous pouvons vous suggérer comment faire la même chose sans avoir à élargir le type.
Par exemple, ++, --, +, -, *, ==, !=, << fonctionnent tous de la même quel que soit signess (c'est à dire donner la même réponse). pour >> vous pouvez substituer >>>
C'est le /, %, >, >=, <, <= et les fonctions d'impression qui supposent des valeurs signées, mais vous devriez être capable de travailler autour de ces (si vous vous en servez).
par exemple
EDIT: Pourquoi ce travail? En partie parce que java n'a pas de débordement/underflow exceptions.
par exemple