C++之从头开始(8)二进制、十进制的转化
2013-11-23 12:55
232 查看
输入两个正整数,然后转换成二进制。。
并且相加~比如25+26的二进制就是00110011(显示出来),然后在转换成10进制,就是51拉~
不说啥了~开始连我也看不懂自己写的程序了~。。。。
main()
{ int a[100],b[100],c[100],k,n,i,j,z,d=0,t=1;
printf("shuru liang ge zhengshu :");
printf("a=");
scanf("%d",&k);
printf("b=");
scanf("%d",&n);
for(i=0;i<8;i++) /*把k和n转换成二进制,比如25为00011001,26为00011010,在把他们分别
{j=k%2;z=n%2; 放在a[]和b[]的数组内,我是不是很聪明呀?:)*/
a[i]=j;b[i]=z;
k=k/2;n=n/2;
}
for(i=0;i<8;i++) /*本程序最精华的部分,通常把K和N的二进制相加,非常感谢亡灵天灾的一位朋
{ c[i]=a[i]+b[i]+c[i]; 友的帮助*/
if(c[i]==2) {c[i]=0;a[i+1]++;}
if(c[i]==3) {c[i]=1;a[i+1]++;}
}
for(i=7;i>=0;i--) /*很明显,这个是要把二进制换成十进制的*/
printf("%d",c[i]);
printf("\\n");
for(i=0;i<=7;i++)
{d=d+c[i]*t;
t*=2;
}
printf("%d",d);
getch();
输入一个十进数,将其转换成N进制数
比如你输入120,然后在输入8(进制),那就是120转换成8进制拉,就输出170,如果输入140,然后换成16进制,那就是8C~~嗷嗷~花了1个小时把16进制给换过来了~哎,一个小失误,就拐了N个弯
最后又回到原来的想法上了~然后就解决~~^.^~
main()
{ int n,k,i,t=0;
int a[100];
printf("shuru yi ge 10 jinzhi de shu:");
scanf("%d",&k);
printf("shuru yao zhuanhua ? jinzhi:");
scanf("%d",&n);
do
{i=k%n;a[++t]=i;k=k/n;}
while(k!=0);
for(;t>0;t--)
{ switch(a[t])
{case 15:printf("F");break;
case 14:printf("E");break;
case 13:printf("D");break;
case 12:printf("C");break;
case 11:printf("B");break;
case 10:printf("A");break;
default:printf("%d",a[t]);
}
}
getch();
}
其实这程序也可以换成3进制,4进制……只要不超过16就行,还有要大于0..
并且相加~比如25+26的二进制就是00110011(显示出来),然后在转换成10进制,就是51拉~
不说啥了~开始连我也看不懂自己写的程序了~。。。。
main()
{ int a[100],b[100],c[100],k,n,i,j,z,d=0,t=1;
printf("shuru liang ge zhengshu :");
printf("a=");
scanf("%d",&k);
printf("b=");
scanf("%d",&n);
for(i=0;i<8;i++) /*把k和n转换成二进制,比如25为00011001,26为00011010,在把他们分别
{j=k%2;z=n%2; 放在a[]和b[]的数组内,我是不是很聪明呀?:)*/
a[i]=j;b[i]=z;
k=k/2;n=n/2;
}
for(i=0;i<8;i++) /*本程序最精华的部分,通常把K和N的二进制相加,非常感谢亡灵天灾的一位朋
{ c[i]=a[i]+b[i]+c[i]; 友的帮助*/
if(c[i]==2) {c[i]=0;a[i+1]++;}
if(c[i]==3) {c[i]=1;a[i+1]++;}
}
for(i=7;i>=0;i--) /*很明显,这个是要把二进制换成十进制的*/
printf("%d",c[i]);
printf("\\n");
for(i=0;i<=7;i++)
{d=d+c[i]*t;
t*=2;
}
printf("%d",d);
getch();
输入一个十进数,将其转换成N进制数
比如你输入120,然后在输入8(进制),那就是120转换成8进制拉,就输出170,如果输入140,然后换成16进制,那就是8C~~嗷嗷~花了1个小时把16进制给换过来了~哎,一个小失误,就拐了N个弯
最后又回到原来的想法上了~然后就解决~~^.^~
main()
{ int n,k,i,t=0;
int a[100];
printf("shuru yi ge 10 jinzhi de shu:");
scanf("%d",&k);
printf("shuru yao zhuanhua ? jinzhi:");
scanf("%d",&n);
do
{i=k%n;a[++t]=i;k=k/n;}
while(k!=0);
for(;t>0;t--)
{ switch(a[t])
{case 15:printf("F");break;
case 14:printf("E");break;
case 13:printf("D");break;
case 12:printf("C");break;
case 11:printf("B");break;
case 10:printf("A");break;
default:printf("%d",a[t]);
}
}
getch();
}
其实这程序也可以换成3进制,4进制……只要不超过16就行,还有要大于0..
相关文章推荐
- 二进制转化到十进制(C++模板)
- C++中如何将十进制转化为二进制(使用外部函数)
- 二进制,八进制,十进制,十六进制相互转化
- 第十三周-2十进制的书转化为二进制的数
- 二进制字符串转化为十进制数字
- 十进制转化为二进制230
- c++整型与二进制的相互转化
- 十进制转化为二进制
- (Java)十进制转化为二进制
- c++ 二进制 八进制 十进制 十六进制 输出
- C++实现二进制、八进制、十进制、十六进制的相互转换
- 将一个十进制的数转化为二进制(注意细节处理)
- java--将一个十进制正数转化为二进制
- 十进制转化为二进制输出奇数偶数为
- 用C,C++代码实现二进制数据与图片的转化
- 十进制转化为二进制
- c十进制转化二进制(递归)
- HDU-2051 Bitset 进制转化(十进制整数向二进制整数转化)
- 十进制负数转化成二进制
- 十进制转化为二进制的方法的理论证明