c语言十进制转二进制

我对编码很陌生。这是我编写的一个程序,用于将十进制转换为二进制,但有一个问题我得到的结果是相反的

示例:122is 的二进制,1111010我正在获取 output 0101111

谁能告诉我是否可以在我的代码中反转输出?或者我可以在以下进行哪些更改以获得正确的输出?

#include<stdio.h>
int main()
{
 int n, q, r;
    
    printf("Enter the decimal Number : ");
    scanf("%d", &n);
    int num=n;
    while(n!=0)        
    {
        r=n%2;
        q=n/2;
        printf("%d", r);
        n=q;
    }
    return 0;   
}

回答

似乎您是编码新手。问题出在这里并不重要。

十进制转二进制是这样的

例如:

除以 2 提醒 少量
10/2 5 0 0
5/2 2 1 1
2/2 1 0 2
1/2 0 1 3

=(1010)

所以输出应该从提醒栏的底部到顶部有数字。您的输出是从上到下打印的。

请参阅下面的代码,您需要一个数组来存储提醒并以相反的顺序打印数组,以便获得所需的输出

#include<stdio.h>    
#include<stdlib.h>  
int main(void){  
  int a[10],n,i;
  printf("Enter the decimal Number : ");  
  scanf("%d",&n);    
  for(i=0;n>0;i++)    
  {    
    a[i]=n%2;    
    n=n/2;    
  }    
  printf("nBinary of Given Number is=");    
  for(i=i-1;i>=0;i--)    
  {    
   printf("%d",a[i]);    
  }    
  return 0;  
}  

  • Welcome to SO. For beginners, proper indentation is even more important than for experienced programmers. That should also be considered in answers. Also you might change signature for `main` into `int main (void)` or `int main(int, char*[])`. Empty parameter list is a deprecated feature and should not be used any more.

以上是c语言十进制转二进制的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>