java - & 0x7fff 是什么意思呢?
PHPz
PHPz 2017-04-18 09:43:40
0
5
1130

String strs = "13634393448";
Bytes.toBytes((short) (strs.hashCode() & 0x7fff));

这里面的 & 0x7fff 是什么意思呢?

PHPz
PHPz

学习是最好的投资!

répondre à tous(5)
巴扎黑

0x07fff=0111111111111111
Que se passera-t-il si vous utilisez cette chose ? Le premier bit est 0 et les autres bits restent inchangés.

Selon le type de données, le bit le plus élevé du type de données signé représente le symbole. Dans ce cas, l'opération ET est utilisée pour obtenir la valeur absolue, c'est-à-dire pour obtenir les 15 bits utiles.

Parfois, la recherche au niveau du bit ou l'opération au niveau du bit est relativement plus rapide.

Il existe une autre situation où il est utilisé pour se montrer.

刘奇

La valeur de retour de

String.hashCode() est calculée comme suit : s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Vous avez donné 13634393448, et son résultat hashCode est 1002012672, qui est 0x3bb98000.
fait l'opération "0x7fff et " avec , ce qui signifie prendre les trois derniers chiffres de 0x3bb98000 Le résultat de cette question est naturellement 0.

PHPzhong

0x7fff = 0111 1111 1111 1111
& est une opération ET
donc cette opération consiste à prendre les 15 derniers chiffres de la représentation binaire du nombre "13634393448"

伊谢尔伦

0x Convertir hexadécimal

巴扎黑

Un seul & est une opération ET au niveau du bit, deux & est une opération ET logique

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal