Chuyển cơ số 10 sang cơ số 8 và ngược lại

Chuyển cơ số 10 sang cơ số 8

Bài này xin hướng dẫn các bạn cách chuyển cơ số 10 sang cơ số 8 và ngược lại. Bài viết sẽ hướng dẫn chi tiết ý tưởng và cung cấp lời giải tham khảo sử dụng cấu trúc dữ liệu ngăn xếp.

Chuyển cơ số 10 sang cơ số 8

Chuyển cơ số 10 sang cơ số 8
Chuyển cơ số 10 sang cơ số 8

Cũng giống như cách chuyển đổi cơ số từ thập phân sang nhị phân, để chuyển cơ số 10 sang cơ số 8 ta cũng phải thực hiện lưu lại kết quả chia dư số ở hệ thập phân cho 8, sau đó chia số đó cho 8. Cứ lặp lại chừng nào số cần chuyển còn lớn hơn 1.
VD: Chuyển số 2764 (hệ thập phân) sang hệ bác phân?
2764  chia  8 = 345.5 (345 -> dư  4)
345   chia  8 = 43.125 (43 -> dư 1)
43     chia  8 = 5.375 ( 5 -> dư 3)
5        chia  8 =  0 -> dư 5
Như vậy, để lấy 2764 ở hệ bát phân, ta đảo ngược các số dư từ cuối lên đầu, tức 2746(10) = 5314(8).

Lời giải tham khảo sử dụng stack:

Với cách này bạn có thể chuyển từ cơ số 10 sang một hệ cơ số bất kỳ nào khác chứ không chỉ cơ số 8. Nếu bạn không muốn dùng stack, hãy thử cách sử dụng vector sau đây:

Kết quả chạy:

Chuyển cơ số 8 sang cơ số 10

Cách chuyển cơ số 8 sang cơ số 10
Cách chuyển cơ số 8 sang cơ số 10

Việc chuyển từ cơ số 8 sang cơ số 10 hết sức đơn giản. Tổng của số hàng đơn vị ở cơ số 8 sẽ nhân với 8^0, số hàng chục * 8^1, … chính là cơ số 10 của số cần chuyển. Lấy một ví dụ cụ thể như sau:

Đổi 2764(8) = ?(10), ta làm như sau:

2764(8) = 4*8^0 + 6*8^1 + 7*8^2 + 2*8^3 = 1524(10).

Bạn có thể kiểm tra bằng cách chuyển ngược kết quả về cơ số 8 sử dụng chương trình phía trên.

Lời giải tham full khảo:

Kết quả chạy:

 

avatar
  Subscribe  
Notify of