二进制与十进制

发布时间:2016-07-15 22:42:09   来源:文档文库   
字号:

二进制与十进制

1、十进制与二进制类比

abcd(10)=a*10^3+b*b*10^2+c*10^1+d*10^0;

abcd(2)=a*2^3+b*b*2^2+c*2^1+d*2^0;

十进制与二进制的区别:

二进制逢二进一,十进制逢十进一

二进制只能出现0,1两个数字,十进制能出现0~9十个数字

二进制各位的权重是2的幂,十进制是10的幂。

2、如何将一个整数分离其各位出来?例如如何将3541分为1,4,5,3

我们知道1=3541%10,4=354%10 5=35%10 3=3%10

3541/10=354 354/10=35 35/10=3 3/10=0

所以对于一个整数来说,要分离各位方法就很简单了。

例如:输入一个n,按从低位到高位输出各位数字(例如:354->4,5,3

实现:

cin>>n;

while(n)

{

cout<

n=n/10;

}

3、如何将一串单独的数字组成一个大数字(从低位到高位),例如1,2,3如何转化成321

我们知道321=3*100+2*10+1*1;

其中3,2,1是通过输入实现的,而权值是有1变为10,然后10变为100,所以代码可以这样敲:

int s,k,n;

s=0;

k=1;

cin>>n;

for(int i=0; i

{

cin>>a;

s=s+a*k;

k=k*10;

}

4、如何将一串单独的数字组成一个大数字(从高位到低位),例如1,2,3如何转化成123

因为abcd=a*10^3+b*10^2+c*10^1+d*10^0

=(a*10^2+b*10^1+c)*10+d

=(((0*10+a*10+b)*10+c)*10)+d

如果我们将结果保存在s中,那么我们可以得到一个关系式:

int s=0;

s=s*10+a;

s=s*10+b;

s=s*10+c;

s=s*10+d;

由此得到代码:

int a,n;

Int s=0;

cin>>n;

for(int i=0; i

{

cin>>a;

s=s*10+a;

}

如何将一个二进制数转化成十进制?

方法:abcd(2)=a*2^3+b*b*2^2+c*2^1+d*2^0;

如何将一个十进制数转化成二进制数?

答案是短除法

即除2取余,直到取整后的整数部分为0,然后从后到前取数字,使用合并整数的方法组成一个大整数即可。

本文来源:https://www.2haoxitong.net/k/doc/bbae9bf66bd97f192379e990.html

《二进制与十进制.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式