kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 CyberShot
CyberShot
Question

Algoritma pembagian yang tidak memulihkan

Adakah yang tahu langkah-langkah untuk membagi bilangan bulat biner tidak bertanda menggunakan pembagian tanpa pengembalian?

Sulit untuk menemukan sumber yang bagus secara online.

yaitu jika A = 101110 dan B = 010111

bagaimana kita menemukan A dibagi dengan B dalam pembagian yang tidak mengembalikan? Seperti apa bentuk register di setiap langkah?

Terima kasih!

8 2012-08-26T20:51:04+00:00 2
Abid  Rahman K
Abid Rahman K
Pertanyaan edit 5 Februari 2013 в 4:52
Pemrograman
algorithm
division
binary
bits
addition
Abid  Rahman K
Abid Rahman K
5 Februari 2013 в 4:30
2013-02-05T16:30:23+00:00
Lebih
Sumber
Sunting
#17048972

(Jawaban saya sedikit terlambat dibalas. Tapi saya harap ini akan berguna bagi pengunjung di masa mendatang)

Algoritma untuk pembagian tanpa pengembalian diberikan pada gambar di bawah ini:

masukkan deskripsi gambar di sini

Dalam soal ini, Pembagi (A) = 101110, yaitu 46, dan Pembagi (B) = 010111, yaitu 23.

Inisialisasi:

Set Register A = Dividend = 000000
Set Register Q = Dividend = 101110
( So AQ = 000000 101110 , Q0 = LSB of Q = 0 )
Set M = Divisor = 010111, M' = 2's complement of M = 101001
Set Count = 6, since 6 digits operation is being done here.

Setelah ini, kita memulai algoritme, yang saya tunjukkan dalam tabel di bawah ini:

Pada tabel, SHL(AQ) menunjukkan pergeseran ke kiri AQ sebanyak satu posisi dengan membiarkan Q0 kosong.

Demikian pula, simbol persegi pada posisi Q0 menunjukkan, ini akan dihitung kemudian

masukkan deskripsi gambar di sini

Semoga semua langkah sudah jelas dari tabel tersebut !!!

20
0
Jhashank Gandhi
Jhashank Gandhi
5 Maret 2018 в 5:18
2018-03-05T17:18:21+00:00
Lebih
Sumber
Sunting
#17048973
  1. Tetapkan nilai register A sebagai 0 (N bit)
  2. Tetapkan nilai register M sebagai Pembagi (N bit)
  3. Tetapkan nilai register Q sebagai Pembagi (N bit)
  4. Gabungkan A dengan Q {A,Q}
  5. Ulangi "N" kali berikut ini (di sini N adalah jumlah bit dalam pembagi):
    Jika bit tanda dari A sama dengan 0, geser A dan Q digabungkan ke kiri sebanyak 1 bit dan kurangi M dari A, jika tidak, geser A dan Q digabungkan ke kiri sebanyak 1 bit dan tambahkan M ke A Sekarang jika bit tanda dari A sama dengan 0, maka setel Q[0] sebagai 1, jika tidak setel Q[0] sebagai 0
  6. Terakhir, jika bit tanda dari A sama dengan 1, maka tambahkan M ke A.
  7. Tetapkan A sebagai sisa dan Q sebagai hasil bagi.
 greybeard
greybeard
Jawaban edit 11 Maret 2018 в 5:06
1
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
工藤 芳則
Terdaftar 6 hari yang lalu
2
Ирина Беляева
Terdaftar 1 minggu yang lalu
3
Darya Arsenyeva
Terdaftar 1 minggu yang lalu
4
anyta nuam-nuam (LapuSiK)
Terdaftar 1 minggu yang lalu
5
Shuhratjon Imomkulov
Terdaftar 1 minggu yang lalu
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi