01/10/2018, 17:14
Chuyển đổi số trực tiếp giữa các hệ cơ số như thế nào?
Mọi người cho mình hỏi cách đổi cơ số cái ạ ,ví dụ (2120141) cơ số 5 sang cơ số 8 và (12134) cơ số 8 qua cơ số 5. Bằng cách đổi trực tiếp không qua cơ số 10, và đổi thông qua cơ số 10 . Thì làm sao ạ , e có xem cách chia lấy dư mà vẫn không hiểu lắm mong mọi người chỉ cách giải ạ . Cảm ơn !!!
Bài liên quan
Nếu bạn muốn “hardcore” không qua thập phân thì phải học bảng
b-1
chương thay vì bảng cửu chương. Căng.“Softcore” hơn thì vẫn có thể chỉ đổi khi tính từng chữ số.
Đổi qua thập phân thì nó tương đối dễ hơn. Đổi về thập phân cũng như lượng giá (thay số) đa thức thôi => Horner. Đảo ngược sơ đồ Horner thì sẽ ra trở lại số ban đầu. Túm lại, cả hai trường hợp nên dùng Horner.
e vẫn chưa hiểu lắm bác nói rõ hơn được không
Không dùng hệ thập phân thì phải tính toán bằng cơ số bạn muốn đổi ấy.
Còn tính ntn thì đây:
Sơ đồ Horner có thể tóm gọn: “rơi đầu, nhân ngang (x0), cộng chéo (hệ số)”, dùng để lượng giá đa thức. Ta bắt đầu bằng việc viết đủ các hệ số từ bậc cao xuống thấp (kể cả zero). Vậy tại sao nó lại tính đúng?
Ta sẽ xây dựng đa thức P(x) = 2x^4 - 7x^3 + 5x^2 + 6x - 1 từ 5 hệ số 2, -7, 5, 6, -1. Thật vậy, ta có dãy truy hồi sau:
g0(x) = c0 = 2
g1(x) = g0(x) * x + c1 = (2)x - 7
g2(x) = g1(x) * x + c2 = (2x - 7)x + 5 = 2x^2 - 7x + 5
tương tự
g3(x) = 2x^3 - 7x^2 + 5x + 6
g4(x) = 2x^4 - 7x^3 + 5x^2 + 6x - 1 = P(x).
Đảo chiều. Ta có cth truy hồi
g[n](x0) = g[n-1](x0) * x0 + c[n]
, với hệ số nguyên thìc[n] = g[n](b) (mod b).
Đây có thể xem là cơ sở của phép đổi cơ số của số nguyên.bắt đầu với
n = 0
(cơ sốB2
),b = 1
(cơ sốB2
)với mỗi số hạng
d
từ thấp tới cao trong số cần chuyển, lấyn += b * d
, rồi chob *= B1
(2120141)5 => cơ số 8
1055278 => cơ số 5
deadbeef16
viết 1 cái class có thêm cơ số rồi cộng nhân như viết cộng nhân số lớn ấy