Bài tập c++ chuyển đổi hệ cơ số năm 2024

Áp dụng như trên ta được: 10101100= 1 + 0. 26 + 1 + 0 + 1 + 1 + 0 +0 + 0-1+1- 2 + 1-3 + 0-4 + 1-5 = 128 + 0 + 32 + 0 + 8 + 4+ 0 + 0 + 0 + 0 + 0 + 0 + 0 = 174. Vậy 10101100 = 174 2. Chuyển đổi từ hệ cơ số thập phân sang bác phân và ngược lại (DEC <->OCT). Ø Từ thập phân sang bác phân. Cũng giống như cách chuyển đổi cơ số từ thập phân sang nhị phân, để chuyển từ thập phân sang bác phân ta cũng chia số cần chuyển cho 8 được phần dư (giá trị dư từ 1->7), sau đó cũng lấy phần nguyên chia tiếp và lấp phần dư, kết quả là phần dư được sắp xếp theo thứ tự từ dưới lên trên. VD: Chuyển số 2764 (hệ thập phân) sang hệ bác phân? 2764 chia 8 = 345 (345 -> dư 4(lấy phần lẻ nhân với 8)) 345 chia 8 = 43 (43 -> dư 1) 43 chia 8 = 5 ( 5 -> dư 3) 5 chia 8 = 0 -> dư 5 Sắp xếp thứ tự từ dưới lên trên: 2764DEC = 5314OCT Ø Từ bác phân sang thập phân. Tương tự hệ nhị phân, để chuyển đổi cơ số từ hệ bác phân sang thập phân, ta lấy các chữ số trong phần nguyên của số cần chuyển nhân lần lượt với 8 mũ 0,1,2,3,..ăng dần từ phải qua trái. Còn phần nguyên của số cần chuyển ta sẽ nhân lần lượt với 8 mũ -1, -2, -3, ... giảm dần từ phải qua trái. VD: Chuyển 5314 thành hệ thập phân?

Để chuyển đổi cơ số từ hệ nhị phân sang bác phân ta gom 3 chữ số của số cần chuyển theo thứ tự lần lượt từ phải sang trái, sau đó sử dụng bảng 1 để chuyển đổi thành kết quả mong muốn. VD: 100110001011010BIN = 100 110 001 011 010 = 4 6 1 3 2 Vậy 100110001011010BIN = 46132OCT Ø Từ nhị phân sang thập lục phân Tương tự như trên,muốn chuyển đồi từ hệ nhị phân sang thập lục phân, ta gom 4 chữ số của số cần chuyển theo thứ tự lần lượt từ phải sang trái, sau đó sử dụng bảng 1. VD: 100110001011010BIN = 0100 1100 0101 1010 (nếu các số cuối cùng bên trái không đủ 4 chữ số thì mặc định ta thêm vào trước đó các chữ số 0) = 4 C 5 A Vậy 100110001011010BIN = 4C5AHEX Ø Từ bác phân sang thập lục phân và ngược lại Muốn chuyển từ hệ bác phân sang hệ thập lục phân hoặc từ thập lục phân sang bác phân, trước tiên ta phải chuyển số cần chuyển sang hệ cơ số 2 (hệ nhị phân), sau đó mới chuyển sang hệ thập lục phân hay bác phân theo các bước phía trên. VD: 46132OCT = 100 110 001 011 010BIN = 0100 1100 0101 1010BIN = 4C5AHEX

Bác ơi...em chạy đoạn code của bác trên C free nhưng nó bị lỗi dòng thứ 8 14 & 28.Bác sửa giúp em với được không ạ.


  • >
    Bài tập c++ chuyển đổi hệ cơ số năm 2024
    Được gửi bởi hai22
    Bác ơi...em chạy đoạn code của bác trên C free nhưng nó bị lỗi dòng thứ 8 14 & 28.Bác sửa giúp em với được không ạ.

Chịu khó đọc code. Bộ tính đem cả bài lên nộp thầy/cô hay sao?

Bài tập c++ chuyển đổi hệ cơ số năm 2024
Được gửi bởi cunbong24

Cho mình 1 lời cảm ơn nữa! Mình rất yêu tiền, song mình không lấy tiền của bạn đâu. Mình tặng bạn code cho bài này (bài này khó với khá nhiều người!!, Code của bài này làm theo triết lý: All In One):

Người ta hỏi hướng đi, lại quăng cả đoạn code chép ở đâu lên vậy? Code gì mà không có comments, không chỉ dẫn giải thuật thì lấy gì học hỏi. Sai đúng cũng chẳng biết đâu mà mò.

-
  • > [QUOTE=megaownage;3989013]Chịu khó đọc code. Bộ tính đem cả bài lên nộp thầy/cô hay sao?

    Em sẽ học chăm hơn.Cám ơn bác đã mắng đúng

    Bài tập c++ chuyển đổi hệ cơ số năm 2024

    - > Em cũng đang bập bẹ học C thoai ạ.Các bác có thể nói hướng đi & giải thuật để em tham khảo được không ạ.
    Đứng trên quan điểm toán thuần túy thì cũng có công thức để chuyển đổi số nguyên theo mọi hệ phân, đi thẳng từ hệ này sang hệ kia. Tuy nhiên, trong trình độ của bài tập này thì tốt hơn hết là dùng cách chuyển gián tiếp, tức là dùng thập phân làm trung gian. Mọi dạng cơ số A đều chuyển sang 10 trước khi chuyển sang B. Sau khi đã thống nhất luật trên rồi thì ta có thể đi bước kế tiếp: định dạng kết quả. Cách dễ nhất để định dạng số ở hệ khác thập phân là dùng chuỗi. Ví dụ số 123 ở hệ nhị phân là 1111011, định dạng bằng một chuỗi 7 ký tự; ở hệ thập lục phân là 7B, định dạng bằng chuỗi 2 ký tự. Sau khi hiểu rõ nhu cầu và quy ước thì có thể bắt đầu tính giải thuật: Để đổi dạng một số từ thập phân sang hệ N, ta làm con toán chia cho hệ, lấy số dư làm đơn vị, và lây số thương tiếp tục. Ví dụ 123 sang hệ thập lục: 123 / 16 -> thương = 7 ; dư 11 (B trong hệ 16) 7 / 16 -> thương 0 ; dư 7 Kết quả là 123 -> 7A Để đổi từ hệ N sang thập phân, ta làm con toán lấy đơn vị từ trái qua phải, cứ mỗi đơn vị lại nhân cho hệ: 7A -> lấy số 7 còn dư A Đem 7 nhân 16 và cộng cho 11 (A) = 123 Đến đây, ta sẽ nhận ra điểm: nếu hệ dưới 10 thì tốt, nhưng nếu trên 10 thì làm sao biết 11 tức là B? Giai đoạn kế tiếp là tìm một giải thuật để dịch các chữ số lớn hơn 9 Cách thông thường nhất là đặt ra một chuỗi, và dùng chỉ số để dịch: char dich = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char donVi = dich[số cần dịch]; // dich[11] == 'B' (*) chú ý: ở đây chỉ nói chuyện số dương. Trường hợp nếu phải tính số âm thì khá rắc rối: phải đặt quy ước định dạng số âm – dùng bit đánh dấu hay dùng hệ tá trị (complement)