01/10/2018, 08:37
Phát hiện tràn số khi nhân 2 số nhị phân có dấu?
Em đang làm đồ án KTMT về số nguyên lớn, đến đoạn nhân 2 số nhị phân thì ko biết cách xác định tràn số như thế nào. Ở đây xem 2 số nhị phân đều 4 bit, mong mn giúp đỡ!!!
Bài liên quan
Hi Nguyễn Thành Tín.
Cái gì không biết thì hỏi. Tuy nhiên đây là vấn đề đã được giải quyết rồi vậy nên tốt nhất là tìm kiếm tài liệu trước.
Thì là v, nhưng mà tìm toàn tiếng anh. Đôi khi kĩ năng của mình chưa đc tốt thì mình vẫn có quyền hỏi chứ, đơn giản là nếu bạn muốn giúp thì trả lời còn không thì lướt qua cũng đc mà :). Câu hỏi kém chất lượng thì sẽ bị trôi thôi, đâu có gì phải lo lắng
Hi Nguyễn Thành Tín.
Làm CNTT thì cần phải khá tiếng anh (Không cần TLEIC hay EL ggg). Bạn cứ mạnh dạn đọc đi. Không thì google dịch.
V bạn biết về vấn đề này ko có thể giúp mình, lúc nào cũng vin vào gg r bắt bẻ này nọ thì lập ra group thảo luận để làm gì nhỉ. Trừ phi những câu hỏi quá nhảm mình k nói, nhưng nếu bạn biết thì có thể giúp ko thì lướt qua cũng đc mà
chuyển 2 số 4 bit thành 2 số 8 bit, tính dấu của phép nhân, rồi đảo dấu thành số dương hết, rồi nhân 2 số với nhau. Ktra 4 bit đầu của kết quả, nếu khác 0 thì có tràn số.
Cái chỗ “rồi đảo dấu…” á bạn là đảo dấu 2 số ban đầu hả bn. Với lại bạn biết cái này ở đâu v
nhớ học ở lớp kiến trúc máy tính lâu rồi
chuyển thành số dương mới đúng. Cái này dễ, ví dụ -6 4 bit là 1010, lấy 1010 xor với 1111 rồi cộng 1 là ra 0110 là 6. Nếu là 6 thành chuyển thành số dương vẫn là 6: 0110 xor với 0000 rồi cộng 0. Số 0 hay số 1 lấy từ bit cao nhất nên ko cần if else gì hết.
phép nhân 2 số n bit lúc nào cũng cho kết quả 2n bit. or n bit cao nhất với nhau lại là ra có tràn số hay ko.
vd nhân -2 với 3: 1110 x 0011.
Bạn có thể nói rõ hơn đc ko, ví dụ cụ thể là -3(1101) và -7(1001) được k bạn
V or 4 bit đầu ra 0 là tràn số hả bn ???
ra 0 là 0 có tràn số @_@ -2 * 3 = -6 làm gì có tràn số ~.~
vd nhân -3 với -7: 1101 x 1001.
tràn bit = 1 suy ra có tràn số.
Trong hệ 4 bit, -3 (1101) và -7 (1001)
Trong hệ 8 bit, -3 (11111101) và -7(11111001), (-3)*(-7)=21 (00010101)
4 bit đầu là 0001 (khác 0000) => 21 không thể biểu diễn trong hệ 4 bit => phép nhân (-3) và (-7) trong hệ 4 bit gây tràn số
à hiểu r, cảm ơn bạn