Bincang membahagi integer tidak bertanda menggunakan algoritma bahagi. Sesetengah algoritma bahagian dilaksanakan di atas kertas, yang lain dilaksanakan pada litar digital. Terdapat dua algoritma pembahagian: algoritma pembahagian perlahan dan algoritma pembahagian pantas. Algoritma pembahagian perlahan termasuk algoritma pemulihan, algoritma pemulihan bukan pelaksanaan, SRT dan algoritma bukan pemulihan.
Dalam tutorial ini, kita akan membincangkan algoritma pemulihan dengan andaian 0 Kaedah penyelesaian
Di sini, kami akan menggunakan daftar Q untuk menyimpan hasil bahagi, daftar A untuk menyimpan baki, dan M untuk menyimpan pembahagi. Nilai awal A kekal pada 0, dan nilainya dipulihkan, itulah sebabnya kaedah menyambung semula pembahagian.
Mulakan daftar dengan nilai,
Memulakan daftar dengan nilai, p>
Q = Dividen,
A = 0,
A ditolak daripada M dan disimpan dalam A.
Semak bit paling ketara A:
Jika 0, tetapkan bit paling ketara kepada 1.
Jika tidak, tetapkan bit paling tidak ketara kepada 0.
Jika N = 0, putuskan gelung jika tidak, pergi ke langkah 2.
Hasil bagi disimpan dalam daftar Q.
flowChart
#include <iostream> using namespace std; int main(){ // initializing all the variables with Dividend = 9, Divisor = 2. int Q = 8,q=1,M=3; short N = 4; int A = Q; M <<= N; // loop for division by bit operation. for(int i=N-1; i>=0; i--) { A = (A << 1)- M; // checking MSB of A. if(A < 0) { q &= ~(1 << i); // set i-th bit to 0 A = A + M; } else { q |= 1 << i; // set i-th bit to 1 } } cout << "Quotient: "<< q; return 0; }
output Quotient: 2
in tutorial ini, kami membincangkan algoritma bahagian pemulihan untuk integer yang tidak ditandatangani. Kami membincangkan cara mudah untuk menyelesaikan masalah ini dengan bantuan carta alir dan menggunakan operasi bit. Kami juga membincangkan program C++ untuk menyelesaikan masalah ini, yang boleh kami laksanakan menggunakan bahasa pengaturcaraan seperti C, Java, Python, dll. Kami harap anda mendapati tutorial ini membantu.
Atas ialah kandungan terperinci Melaksanakan algoritma pembahagian pemulihan integer yang tidak ditandatangani dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!