0 k thích
60 đã xem
trong CNTThuc bởi (120 điểm)
Cho em hỏi làm thế nào để nhập 1 số hệ cơ số 10 sang số hệ cơ số 16, hệ cơ số 2 và ngược lại ạ. Em cảm ơn

1 Câu trả lời

0 k thích
bởi (3.2k điểm)

+ Cách chuyển một số hệ cơ số 10 sang 1 hệ cơ số khác bất kì, ở đây mình gọi là cơ số C;

s = ""; // số cần tìm dưới dạng chuỗi

n; // số cần chuyển

while (n > 0)

{

       t = n % C; // lưu t dưới dạng kí tự

       s = t + s;   // tức chèn kí tự mới vào đầu chuỗi

       n = n /  C;

}

+ Cách chuyển 1 số từ hệ cơ số C bất kì sang hệ cơ số 10:

s; // số cần chuyển dưới dạng chuỗi. Vd: "10100" hoặc "A5"

n = 0; // số cần tìm trên hệ cơ số 10

len = length(s) - 1;

for i = 0 -> len do:

     n += (int)s[i] * C^(len - i);

     // Vd: s = "A5" tức s[0] = 'A' và s[1] = '5' => n = 10 * 16^(1) + 5 * 16^(0); A trong hệ hex = 10

     // vì trong bộ nhớ đếm số thứ tự từ trước ra sau, còn trong logic hệ cơ số thì mình đếm từ sau ra trước nên mới dùng (len - i)

end for;

Với bài toán chuyển giữa 2 cơ số bất kì không phải hệ 10 thì bạn có thể dùng hệ 10 làm hệ trung gian, tức chuyển 2 lần. Vd chuyển giữa hệ 2 và hệ 16 thì mình làm 2 -> 10 > 16.

Search google để biết thêm chi tiết. Chúc bạn thành công.

Chào mừng đến với Q&A FIT. Bạn có thể đặt câu hỏi và nhận được câu trả lời từ các bộ phận hỗ trợ và những thành viên khác tại Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM. Bạn hãy đăng nhập bằng tài khoản Google để gửi hoặc trả lời các câu hỏi.
...