01/10/2018, 01:09

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 ạ.

X viết 03:23 ngày 01/10/2018

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

Nguyễn Văn Vương viết 03:18 ngày 01/10/2018

lạ nhỉ,số thực cũng chuyển được á,mình thiển cận quá :((

Killua viết 03:22 ngày 01/10/2018

Chuyển đc chứ bạn , cách chuyển hơi ngược chút thôi

Nguyễn Văn Vương viết 03:24 ngày 01/10/2018

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 :))

*grab popcorn* viết 03:21 ngày 01/10/2018

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.28
2 = 0.56 -> 0
0.562 = 1.12 -> 1
0.12
2 = 0.24 -> 0
0.242 = 0.48 -> 0
0.48
2 = 0.96 -> 0
0.962 = 1.92 -> 1
0.92
2 = 1.84 -> 1
0,842 = 1.68 -> 1
0.68
2 = 1.36 -> 1
0.362 = 0.72 -> 0
0.72
2 = 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

Nguyễn Văn Vương viết 03:11 ngày 01/10/2018

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 :))

rogp10 viết 03:10 ngày 01/10/2018

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.

Bài liên quan
0