Nhờ giúp đỡ C++ bài viết hàm chuyển hệ thập phân sang nhị phân

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.

1 Like

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.

1 Like

Sao bạn không dùng stack nhỉ?

1 Like

Hình như bài này anh Sơn ĐT hd là sd đệ quy hay sao ý bạn.

1 Like

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.

2 Likes

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é

1 Like

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àm log() ), 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!)

1 Like

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

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?