Rumah  >  Artikel  >  Java  >  Mengapa Integer Java Dilemparkan ke Bait Menghasilkan -124 Apabila Ia 132?

Mengapa Integer Java Dilemparkan ke Bait Menghasilkan -124 Apabila Ia 132?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 10:29:03568semak imbas

Why Does a Java Integer Cast to a Byte Result in -124 When It's 132?

Gelagat Ingin Tahu Java dalam Penukaran Jenis: Membongkar Misteri -124

Apabila cuba untuk menetapkan integer kepada bait dalam Java, satu yang menarik timbul pemerhatian: nilai integer 132 diberikan sebagai -124 apabila dibuang kepada bait. Hasil yang membingungkan ini pada mulanya mungkin kelihatan membingungkan.

Meneroka Teka-teki Pelengkap Keduanya

Untuk merungkai enigma ini, adalah penting untuk menyelidiki jenis data asas Java dan perwakilannya. Di Java, jenis integer seperti int dan bait ditandatangani, menggunakan notasi pelengkap kedua-duanya. Dengan tatatanda ini, bit yang paling ketara menandakan tanda, mengekalkan nilainya sebagai bit yang paling ketara kerana nombor itu dikembangkan kepada saiz bit yang lebih besar.

Mencari Kebahagiaan yang Tidak Ditandai

Dalam kebanyakan senario, adalah wajar untuk mentafsirkan bait sebagai nilai yang tidak ditandatangani, membuang sebarang maklumat tanda. Ini boleh dicapai melalui operasi bitwise. Contohnya, menggunakan bitwise DAN dengan topeng 0xff pada bait yang ditandatangani dengan berkesan menghapuskan bit tanda, mendedahkan nilai yang tidak ditandatangani.

Ritual Unmasking Unraveled

The proses berlaku seperti berikut:

  1. Bait sebagai Integer Bertandatangan: Pertimbangkan bait bertandatangan yang diwakili sebagai 11111111 dalam perduaan. Java mentafsirkan ini sebagai -1.
  2. Bitwise AND with Mask: Menggunakan operasi bitwise AND dengan 0xff menutup bit tanda, menghasilkan 00000001 dalam binari.
  3. Integer Terubah: Java mentafsir nilai bertopeng sebagai integer tidak bertanda, iaitu 1 dalam perwakilan perpuluhan.

Teknik ini membolehkan pengekstrakan lancar nilai bait tidak bertanda daripada integer yang ditandatangani.

Kesimpulan

Penukaran Java daripada int kepada bait boleh memperkenalkan tingkah laku yang halus lagi menarik kerana notasi pelengkap dua yang mendasari. Memahami nuansa ini membantu merungkai misteri di sebalik output -124 yang tidak dijangka, memperkasakan pembangun untuk memanipulasi jenis data dengan berkesan dalam aplikasi Java mereka.

Atas ialah kandungan terperinci Mengapa Integer Java Dilemparkan ke Bait Menghasilkan -124 Apabila Ia 132?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn