1. 什么是二进制?
在计算机中,二进制是一种用于编码数字、字母和符号的系统,它只使用两个数字0和1。我们平常接触到的十进制数字系统就是使用十个数字0-9来表达。
2. 十进制和二进制之间的转换
将十进制数转换成二进制数,我们需要不断地将它除以2并记录余数,直到商为0为止。然后反向排列记录的余数,就是我们所求的二进制数。
2.1 十进制转二进制的流程
以下是将十进制数15转换成二进制数的流程:
15 / 2 = 7 余 1
7 / 2 = 3 余 1
3 / 2 = 1 余 1
1 / 2 = 0 余 1
所以,15的二进制数为1111。
2.2 C程序实现十进制转二进制
下面是一个使用C语言实现将十进制数转换成二进制数的例子:
#include <stdio.h>
//将十进制n转换为二进制并打印出来
void decToBinary(int n) {
int binaryNum[32]; //用来存储二进制数
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2; //获取余数
n = n / 2; //获取商
i++;
}
//打印出二进制数(注意:要从后往前打印)
for (int j = i - 1; j >= 0; j--) {
printf("%d", binaryNum[j]);
}
}
int main() {
int decimalNum = 15;
decToBinary(decimalNum);
return 0;
}
以上程序的输出结果为:
1111
3. 二进制转十进制
将二进制数转换成十进制数,我们需要用权的方式将每一位数字进行求和。
3.1 二进制转十进制的流程
以下是将二进制数1111转换成十进制数的流程:
1 * 2^3 = 8
1 * 2^2 = 4
1 * 2^1 = 2
1 * 2^0 = 1
所以,1111的十进制数为15。
3.2 C程序实现二进制转十进制
下面是一个使用C语言实现将二进制数转换成十进制数的例子:
#include <stdio.h>
#include <math.h>
//将二进制数n转换为十进制并返回
int binaryToDec(int n) {
int decNum = 0;
int i = 0;
while (n > 0) {
int remainder = n % 10; //获取当前位的数字
decNum += remainder * pow(2, i); //加上当前位的值
n = n / 10; //获取下一位的数字
i++;
}
return decNum;
}
int main() {
int binaryNum = 1111;
int decNum = binaryToDec(binaryNum);
printf("%d", decNum);
return 0;
}
以上程序的输出结果为:
15
4. 总结
通过本文的介绍,我们了解了二进制和十进制之间的转换原理,并实现了将十进制数转换成二进制数,以及将二进制数转换成十进制数的C程序。