平常生活中,我们会用到阿拉伯数字,而阿拉伯数字有进制区分。
今天讲的是十进制怎么转二进制。
在二进制中,每一位数位上的数都<2,十进制也一样,所有数位上的数都<10,二进制的每一位都是满二进一,例如:(10)2=(2)10 //设(y)x为在x进制中代表为y的数.
思想如下:
思想就是拿上一次的商(第一次的被除数为你要转换的数)÷2(因为要转换的是二进制嘛,是八进制就÷8),然后倒序输出所有式子的余数。
可这道题的难点在于如何倒序输出所有式子的余数。
这也很简单,只需要把所有式子的余数用一个数组储存,最后倒序输出所有已存数的空间就行了。(下面是例题)
-------------------------------------------------------------------------------------
十进制转二进制
题目描述
十进制转二进制一般用 短除法
在进行进制转换时有一基本原则:转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。
现在请将一个十进制的正整数n,转换为二进制并输出。
输入
一个正整数 :n [0,100]
输出
一个二进制数
样例输入
5
样例输出
101
#include<bits/stdc++.h>
using namespace std;
long long shu,shu2,sl,a[10005];
int main(){
scanf("%lld",&shu);
while(1)
{
shu2=shu%2;
sl++;
a[sl]=shu2;
shu/=2;
if(shu==0) break;
}
for(int i=sl;i>=1;i--) printf("%lld",a[i]);
return 0;
}