Ketika datang ke pengoperasian eksponen daya, kami akan menggunakan matematika.
Di Java, ketika kita menghitung N-Power 2, kita dapat secara langsung menggunakan Math.pow untuk menghitung. Sangat nyaman.
Namun, diketahui bahwa hasil dari suatu daya adalah M dan nomor dasar A dari daya, dan sekarang membutuhkan eksponen n daya. Metode log (ganda) yang disediakan dalam matematika, tetapi hanya satu parameter yang dilewati, yaitu M. Jadi pertanyaannya adalah, bagaimana memenuhi persyaratan kami secara sederhana, nyaman dan cepat? Jawabannya adalah sebagai berikut:
n = math.log (m) /Math.log (a);
Metode ini dapat memenuhi sebagian besar perhitungan indeks daya kami, tetapi nilai yang diakses dan nilainya berlalu setiap kali adalah dua kali lipat. Apa yang harus saya lakukan jika saya tidak ingin mentransfernya? Kami memiliki solusi baru.
Premis Solusi: Jumlah dasar indeks daya adalah kelipatan 2.
Di sini kami menggunakan operasi shift (operasi shift didasarkan pada biner, sehingga prasyarat untuk solusi adalah dasar ini). Jika kita menemukan kekuatan 2 hingga 3, kita dapat menggunakan 2 << (3-1) untuk menghitung hasilnya.
Untuk kekuatan ke-2 dari 4, kita harus terlebih dahulu mengonversi 4 menjadi kekuatan ke-2 dari 2, dan kemudian menggunakan 2 << (4-1) untuk menghitung hasilnya.
Efek dari metode berikut adalah untuk melewati dua angka yang ditambahkan ke kelipatan 2, seperti 12 (4+8), dan kami secara otomatis menghitungnya [4,8]
Misalnya, 18, kami menghitungnya [2, 16]
Misalnya, 22, kami menghitungnya [2, 4, 16]
/*** Konversi ke array integer mulai dari kekuatan 2, array string* @param Jumlah nilai dari faksi yang masuk dapat berupa nilai faksi atau nilai yang ditambahkan ke beberapa faksi* 2^1 + 2^2 Ini* tiba -tiba melupakan operasi shift juga merupakan operasi kekuatan eksponensial* @Return*/private static static [] TougrouparruRarred (Private TougRouparrar 0) {System.out.println ("Anda memiliki kode eraor");} else if (sum == 0) {System.out.println ("Anda tidak memiliki kode pilihan");} else {string binarycode = integer.tobinTystring (sums); System.out.println ("Binary Code:+(" Binary: "+(" Binary ("Binary (" Binary: "SUMLINGINE (" BINARINGINE ("BINARINGINE:" BINARINGER: "BINARINGINE;" "";for (int i=0;i<binaryCode.length();i++){if(binaryCode.charAt(i) == '1'){str = str + index +",";}index --;}str = str.substring(0, str.length()-1);System.out.println(str);String[] strArray = str.split (","); int [] hasil = int baru [strarray.length]; // Anda juga dapat mengembalikan array karakter // string [] result2 = string baru [strarray.length]; untuk (int i = 0; i <strarray.length; i ++) {// hasil [i] = (int) math.pow (2, double.parsedouble (strarray [i]))); Hasil [i] = 2 << (integer.parseint (strarray [i])-1);} hasil pengembalian;} return null;}Meringkaskan
Di atas adalah semua konten artikel ini tentang analisis kode operasi dari nilai indeks daya di Java, dan saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!