68 votes

short non signé en java

Comment puis-je déclarer une valeur unsigned short en Java?

75voto

Jon Skeet Points 692016

Tu ne peux pas vraiment. Java n'a aucun type de données non signé, à l'exception de char .

Certes, vous pouvez utiliser char - c'est un type non signé 16 bits - mais ce serait horrible, car char est clairement destiné au texte.

15voto

starblue Points 29696

Si vous avez vraiment besoin d'une valeur avec exactement 16 bits:

Solution 1: Utilisation de l'signé à court et à cesser de s'inquiéter de ce signe, sauf si vous avez besoin de faire la comparaison (<, <=, >, >=) ou de la division (/, %, >>) opérations. Voir cette réponse pour savoir comment gérer des nombres signés, comme si ils ont été signés.

Solution 2 (où la solution 1 ne s'applique pas): Utilisez les 16 bits de poids faible de l'int et de supprimer les bits supérieurs avec & 0xffff le cas échéant.

14voto

joel garringer Points 41

C'est un fil vraiment rassis, mais pour le bénéfice de tous ceux qui viennent après. Le caractère est un type numérique. Il prend en charge tous les opérateurs mathématiques, opérations sur les bits, etc. Il s'agit d'un 16 non signé.

Nous traitons les signaux enregistrés par du matériel embarqué personnalisé, nous traitons donc un grand nombre de 16 non signés provenant des A-D. Nous utilisons des caractères partout dans le monde depuis des années et nous n'avons jamais eu de problèmes.

11voto

TofuBeer Points 32441

Vous pouvez utiliser un caractère, car il s'agit d'une valeur non signée de 16 bits (bien que techniquement, il s'agit d'un caractère unicode, il pourrait éventuellement changer pour devenir une valeur de 24 bits à l'avenir) ... l'autre alternative consiste à utiliser un int et à vous assurer il est à portée.

N'utilisez pas de char - utilisez un int :-)

Et voici un lien sur Java et le manque de non signé .

3voto

paweloque Points 4467

Pas un tel type en Java

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X