recherche

Maison  >  Questions et réponses  >  le corps du texte

java - & 0x7fff 是什么意思呢?

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

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

PHPzPHPz2770 Il y a quelques jours1133

répondre à tous(5)je répondrai

  • 巴扎黑

    巴扎黑2017-04-18 09:45:40

    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.

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 09:45:40

    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.

    répondre
    0
  • PHPz

    PHPz2017-04-18 09:45:40

    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"

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:45:40

    0x Convertir hexadécimal

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:45:40

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

    répondre
    0
  • Annulerrépondre