while(x1!=0) 是什么意思
来源:百度知道 编辑:UC知道 时间:2024/09/23 05:20:20
{
int a=0, /*原始进制*/
b=8, /*转换进制,默认为八*/
k=1; /*位权*/
long xa=0, /*原始数值*/
xb=0, /*转换数值*/
x1=0,x2=0; /*十进制数值*/
printf("\n Input the number and weight a->b:");
scanf("%ld %d",&xa,&a,&b);
x1=xa;
while(x1!=0) &&&&&&&&&& /*转换为十进制数*/
{
x2+=(x1%10)*k; &&&&&&&&&&& /*逐位取值*/
x1/=10;
k*=a; /*k=k*a*/
}
k=1;
x1=x2;
while(x1!=0) /*转换为b进制数*/
{
xb+=(x1%b)*k;
x1/=b;
k*=10;
}
printf("\n %ld(%d)=%ld(%d)=%ld(%d)",xa,a,x2,10,xb,b);
return ;
}
有哪位高手能不能逐句的注释一下这段代码?不明
#include <stdio.h>
main()
{
int a=0, /*原始进制*/
b=8, /*转换进制,默认为八*/
k=1; /*位权*/
long xa=0, /*原始数值*/
xb=0, /*转换数值*/
x1=0,x2=0; /*十进制数值*/
printf("\n Input the number and weight a->b:");
scanf("%ld %d %d",&xa,&a,&b);
x1=xa;
while(x1!=0) /*转换为十进制数,将结果保存到x2中*/
{
x2+=(x1%10)*k; /*从最低位开始依次取值。%为求模运算,取10进制数的最后1位的值*/
x1/=10; /*去除最后1位*/
k*=a; /*k=k*a*/
}
k=1;
x1=x2;
while(x1!=0) /*转换为b进制数,将结果保存到xb中*/
{
xb+=(x1%b)*k; /*从最低位开始依次取值。%为求模运算,取b进制数的最后1位的值*/
x1/=b; /*去除最后1位*/
k*=10; /*k=k*10*/
}
printf("\n %ld(%d)=%ld(%d)=%ld(%d)",xa,a,x2,10,xb,b);//打印信息
return 0;//返回一个值