十进制与二进制之间的转化
一,十进制转二进制
1,原理
除二取余,逆序排列
用十进制的整数除以2,可以得到一个商和一个余数;用余数除以2,又可以得到一个商和一个余数,如此除二取余的过程循环进行,直到商小于1为止。
最后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来即得到二进制数。
2,模板
下面直接贴代码。
//适用于直接输出二进制的代码1-1
void binary_1(int n) {
if (n / 2) {
binary_1(n / 2);
}
cout << n % 2;
}
代码1-1适用于直接输出二进制代码,利用递归实现输出,它每次只能输出一位二进制,这就意味着它没发参与运算,只能起到输出的作用。
//使用于需要使用二进制的代码1-2
long long binary_2(int n) {
long long binaryNumber = 0;
int temp, i = 1;
while (n != 0) {
temp = n % 2;
n = n / 2;
binaryNumber = binaryNumber + temp * i;
i = i * 10;
}
return binaryNumber;
}
代码1-2适用于转化需要后续参与运算的二进制数,返回值是long long类型整数。