Ketika angka negatif tidak dipertimbangkan, untuk analisis ini, kita dapat melihat bahwa ketika nilai input kurang dari 1, angka ini jelas bukan kekuatan integer 2.
Ketika nilai input lebih besar dari satu, kita dapat menemukan aturan. Kekuatan integer 2 diekspresikan dalam biner sebagai:
2d = 10b; 4d = 100b; 8d = 1000b
Bit pertama dari biner adalah satu, dan sisanya nol.
Oleh karena itu, kita dapat menilai bahwa ketika nilai input dikonversi menjadi biner, bit pertama adalah satu dan bit lainnya adalah 0, sehingga nilai input adalah kekuatan integer 2.
Namun, melakukan ini terlalu rumit. Kita hanya dapat menilai posisi "1" di nomor biner untuk terakhir kalinya, dan menggunakan string, lastIndexof (); metode.
Dan kami juga dapat menemukan bahwa aturan ini juga berlaku untuk kasus di mana input 1 dimasukkan.
Kemudian kode ringkas muncul.
public static boolean isPoweroftwo (int n) {string str = integer.tobinaryString (n); if (n <1) return false; else if (str.LastIndexOf ("1") == 0) return true; elsereturn false; }Metode Java di atas untuk menentukan apakah kekuatan integer 2 adalah seluruh konten yang dibagikan oleh editor. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.