30/09/2018, 21:07
Nhờ giúp đỡ C++
Cho mình hỏi là trong bài viết hàm chuyển hệ thập phân sang nhị phân, sau khi chia lấy phần dư và lưu vào trong mảng thì làm sao đảo ngược mảng ấy lại để được dạng nhị phân, mảng không biết trước được bao nhiêu phần tử.Ai có cách giải khác cho mình tham khảo với nhé.Cám ơn.
Bài liên quan
Basic 1 chút thì bạn làm 1 biến đếm trong lúc lưu các phần dư vào mảng. Sau đó thực hiện chuyển lại.
Sao bạn không dùng stack nhỉ?
Hình như bài này anh Sơn ĐT hd là sd đệ quy hay sao ý bạn.
Cách 2 là dùng chuỗi
Truyền vảo 1 mảng chuỗi
Khi lưu tới phần tử cuối cùng.
Thì phần tử cuối + 1 = 0
-> sẽ lấy được strlen của chuỗi.
mình dùng biến đếm lưu số phần tử của mảng.Stack mình chưa học tới. Cảm ơn mọi người nhé
Hoặc là mình áp dụng như vầy đây nè:
Số ký số cần thiết để biểu diễn nhị phân của số N (thập phân) là:
(logarithm cơ số 2 của N) +1
Trong thự viện
math.h
không có hàm tính logarithm cơ số 2 nhưng mà có logarithm cơ sốe
(hàmlog()
), mình tính theo công thức này:Số phần tử mảng kết quả
=(logarithm cơ số 2 của N) +1 = log(N) / log(2) +1
(nhớ ép kiểu nha!)
Tham khảo Topic này của mình nhé: Không tìm được lỗi trong chương trình chuyển đổi số thập phân sang số nhị phân và ngược lại
Nói chung chuyển số thập phân sang nhị phân thì đặt 1 vòng lặp while, trong vòng lặp thì %2 và /2 rồi lưu chữ số ấy vào mảng, đặt thêm 1 biến phụ, cứ sau mỗi lần đưa chữ số vào mảng, tăng biến phụ rồi kết thúc vòng lặp sang vòng lặp mới.
Sau đó dùng vòng lặp for rồi đảo ngược cái mảng lại bằng cách:
for(int i = bienphu - 1; i >= 0; i--)
.