Cần giúp bài tập C chuyển cơ số bất kì
Thi cuối kì lớp em có bài này:
“Viết chương trình sử dụng hàm nhập số n từ bàn phím và đổi sang cơ
số c, cơ số c cũng nhập từ bàn phím ? In kết quả đổi sang cơ số c ra màn hình”
Chuyển đổi qua lại giữa 2-10, 10-16, 10-8 thì em làm được rồi(chưa tính đến thực, và thực âm)
Nhưng yêu cầu giáo viên là chuyển đổi được tất cả các số trong tập R (real); và chuyển từ cơ số bất kì sang cơ số bất kì.(từ cơ số 2-16)
Dạng toán như thế này mà bốc trúng và trong thời gian 60 phút thì chắc chết;
Ai có thể nêu ý tưởng hay share code để e tham khảo được không ạ.
Em vào đây xem nhé :v
tongquanvienthong.blogspot.com
Chuyển đổi giữa các hệ cơ số
Blog chia sẻ kiến thức về viễn thông
lạ nhỉ,số thực cũng chuyển được á,mình thiển cận quá :((
Chuyển đc chứ bạn , cách chuyển hơi ngược chút thôi
ví dụ 3.14 chuyển sanh nhị phân kiểu gì bạn nhỉ ?? thường thì mình chỉ biết chuyển số nguyên :))
Tách ra 2 phần, phần nguyên và phần thập phân (3 và .14) Đổi phần nguyên như bth. Còn phần thập phân cứ nhân 2, nếu kq ra 1.xx thì lấy 1. 0.xx thì lấy 0. Sau đó lấy phần thập phân nhân tiếp, nhân tới khi ra 1.00 thì dừng.
3 -> 11
0.142 = 0.28 -> 0
0.282 = 0.56 -> 0
0.562 = 1.12 -> 1
0.122 = 0.24 -> 0
0.242 = 0.48 -> 0
0.482 = 0.96 -> 0
0.962 = 1.92 -> 1
0.922 = 1.84 -> 1
0,842 = 1.68 -> 1
0.682 = 1.36 -> 1
0.362 = 0.72 -> 0
0.722 = 1.44 -> 1
0.44 *2 = 0.88 -> 0
-> 11.0010001111010…
Làm vậy khi nào nhân ra = 1.00 hoặc đạt được chu kỳ or lố giới hạn lưu trữ theo chuẩn IEEE 754
sao trên trường người ta không dạy cái này nhỉ,làm mình cứ nghĩ chỉ số nguyên mới đổi được
Cảm ơn bạn rất nhiều :))
Tại vì không đủ thời gian có cơ số hữu tỉ (cho b bằng phân số) và cơ số phức
Phần sau dấu phẩy (không gọi là “thập phân” :D) trong cơ số b là sigma(i=1…) n[-i]*b^(-i). Vậy muốn tính n[-1] thì phải nhân b^1, n[-2] thì nhân b^2, … để trích xuất.
Đặc biệt đổi ra bin hay hex thì có thể đọc trực tiếp.