十进制转二进制,我们知道就是每次除2取余数。
公式:被除数 ÷ 除数 = 商 + 余数
利用短除法求解二进制 :
这里我们用举一个例子,短除法这是一个把十进制数转换为二进制数的方法。下面以5为例子,写出具体的转换过程。
5 % 2 = 2.....1;
2 % 2 = 1.....0;
1 % 2 = 0.....1;
短除法做到商等零就结束了。从下往上把每一次的余数连接起来,就是转换得到的二进制值。
5=(101)2
我们看一下短除法图解:
AC代码:
#include<iostream>
using namespace std;
int dectobin(int n)
{
int sum = 0;
int x=1;
while(n!=0)
{
//我们可以手算一下,符合二进制规则
/*
例如 5
5 % 2 = 2.....1;
2 % 2 = 1.....0;
1 % 2 = 0.....1;
所以5的二进制是101
*/
int m = n % 2;
//这里我们不选择去定义sum =0,去做sum = sum * 10 + m
//是因为第一个数如果是0的话数据就会错误
sum = sum + x * m;
x = x * 10;
n = n / 2;
}
return sum;
}
int main()
{
int n;
cin >> n;
int de = dectobin(n);
cout << de;
return 0;
}