C语言实战开发篇-4.3 用while语句实现进制的转换(不用数组)

while语句的使用

1.语法
相对for语句来说比较简单。
while()
{
...;}
()里面的内容为循环条件,只要为“true”循环就将进行
2.例:用while语句实现进制的转换。(以二进制为例)
基本思路为除“进制”取余法。用此方法容易得到十进制的二进制数,但是得到的数为逆序数,则本方法难点在于取逆序数。

#include
int main()
{
    int i,m,j,n=1,k=0;
/*定义了5个变量,i为需要转为二进制数的十进制数,m为余数,j为最终得到的二进制数,n为位数,k转化过程中的二进制数*/
    printf("请输入数字:");
    scanf("%d",&i);
    while(i/2!=0){//while语句语法,只要i/2不为0,就将循环
    m=i%2;
    i=i/2; 
    if(m!=0){//这里需要注意将余数为0单独讨论,因为0乘任何数都得0,如果出现多个余数都为0的情况,这些数相加就得0了,就会出现少位
    k=m*n+k;    
    }
    n=n*10;//每循环1次,位数多1位,故n*10
    printf("%d",m);
    if(i<2){//当i<2时,上述循环会终止,但最终剩下的数不能不管,所以需要单独讨论
    printf("%d",i);//此时的i即为最后剩下的数
    break;
    }
    }
    j=k+i*n;
    printf("\n");
    printf("j=%d",j);
    return 0;
}

效果图


C语言实战开发篇-4.3 用while语句实现进制的转换(不用数组)_第1张图片
进制数.gif

你可能感兴趣的:(C语言实战开发篇-4.3 用while语句实现进制的转换(不用数组))