Chuyển đổi từ số thập phân thành số nhị phân trong C: Chúng ta có thể chuyển đổi bất kỳ số thập phân nào, một số nhị phân là số bao gồm 0 và 1 còn một số thập phân bao gồm các giá trị từ 0 đến 9. Để chuyển đổi một giá trị nhị phân thành một số nguyên thập phân, ta sử dụng toán tử mô-đun (%). Bài viết dưới đây bao gồm ví dụ minh họa việc chuyển đổi từ số nhị phân (Binary) sang số thập phân (Decimal) trong C.
Số thập phân là số cơ số 10 vì nó nằm trong khoảng từ 0 đến 9, có tổng số 10 chữ số từ 0 đến 9. Bất kỳ kết hợp chữ số nào là số thập phân như 23, 445, 132, 0, 2,…
Số nhị phân là số cơ số 2 vì số này là 0 hoặc 1. Bất kỳ kết hợp nào của 0 và 1 là số nhị phân như 1001, 101, 11111, 101010, ...
Hãy xem một số số nhị phân cho số thập phân.
Thập phân |
Nhị phân |
1 |
1 |
2 |
10 |
3 |
11 |
4 |
100 |
5 |
101 |
6 |
110 |
7 |
111 |
8 |
1000 |
9 |
1001 |
10 |
1010 |
Lưu ý: Mã này để chuyển đổi nhị phân sang thập phân trong ngôn ngữ lập trình C được phát triển trong hệ điều hành Linux Ubuntu và được biên dịch bằng trình biên dịch GCC.
Để biên dịch chương trình này trong Linux Ubuntu, bạn cần gõ lệnh sau đây:
gcc test.c –lm
Để chuyển đổi từ số thập phân thành số nhị phân trong C chúng ta có 3 phương pháp:
Phương pháp 1: Chương trình C để chuyển đổi nhị phân thành số thập phân bằng cách sử dụng hàm
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include #include #include
int Binary_To_Decimal(int x) { int decimal_number = 0, count; for(count = 0; x > 0; count++) { decimal_number = decimal_number + pow(2, count) * (x % 10); x = x / 10; } return decimal_number; }
int main() { int binary_number, result; printf("\nEnter A Binary Value: \t"); scanf("%d", &binary_number); result = Binary_To_Decimal(binary_number); printf("\nDecimal Equivalent of Binary Number: \t %d\n", result); return 0; } |
Phương pháp 2: Chương trình C để chuyển đổi số nhị phân sang số thập phân bằng cách sử dụng mảng
#include
int power_func(int c, int d)
{
int value = 1;
int count = 1;
while(count <= d)
{
value = value * c;
count++;
}
return value;
}
int main()
{
int bin_num[15];
int digit_count, dec_num = 0;
int a = 0, i;
printf("\nEnter The Number of Digits in Binary Number: \t");
scanf("%d", &digit_count);
printf("\nEnter Binary Digits One After Another:\n");
for(i = 0; i < digit_count; i++)
{
scanf("%d", &bin_num[i]);
}
for(i = (digit_count - 1); i >= 0; i--)
{
dec_num = (bin_num[i] * power_func(2, a)) + dec_num;
a++;
}
printf("\nDecimal Equivalent of Binary Number: \t %d", dec_num);
printf("\n");
return 0;
}
Phương pháp 3: Chuyển đổi số nhị phân thành thập phân trong C mà không sử dụng mảng
#include
#include
#include
int main()
{
int binary_number, decimal_number = 0, count;
printf("\nEnter A Binary Value: \t");
scanf("%d", &binary_number);
for(count = 0; binary_number > 0; count++)
{
decimal_number = decimal_number + pow(2, count) * (binary_number % 10);
binary_number = binary_number / 10;
}
printf("\nDecimal Equivalent of Binary Number: \t %d\n", decimal_number);
return 0;
}
Đầu ra:
Nếu bạn có bất kỳ lỗi biên dịch hoặc thắc mắc nào về chuyển đổi từ số thập phân thành số nhị phân trong C nào hãy cho chúng tôi biết trong phần nhận xét bên dưới.
Một số bài tập về lập trình C khác: