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

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

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

PHPz
PHPz

学习是最好的投资!

membalas semua(5)
巴扎黑

0x07fff=0111111111111111
Apakah yang akan berlaku jika anda mengendalikan perkara ini? Bit pertama ialah 0, dan bit lain kekal tidak berubah.

Bergantung pada jenis data, bit yang lebih tinggi dalam jenis data yang ditandatangani mewakili simbol Dalam kes ini, operasi AND digunakan untuk mendapatkan nilai mutlak, iaitu, untuk mendapatkan 15 bit yang berguna.

Kadangkala carian bitwise atau operasi bitwise adalah lebih pantas.

Ada satu lagi situasi di mana ia digunakan untuk menunjuk-nunjuk.

刘奇

Nilai pulangan

String.hashCode() dikira seperti berikut: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Anda memberikan 13634393448 dan hasil Kod cincangnya ialah 1002012672, iaitu 0x3bb98000.
melakukan operasi "0x7fff dan " dengan , yang bermaksud mengambil tiga digit terakhir 0x3bb98000 Keputusan soalan ini secara semulajadi 0.

PHPzhong

0x7fff = 0111 1111 1111 1111
& ialah operasi DAN
jadi operasi ini adalah untuk mengambil 15 digit terakhir perwakilan binari nombor "13634393448"

伊谢尔伦

0x Tukar perenambelasan

巴扎黑

Satu & ialah operasi AND bitwise, dua & ialah logik DAN

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan