请用一个很简单的C语言程序:十进制转换为二进制。 如何利用c语言编写程序将一个十进制数转换为二进制?

\u7528C\u8bed\u8a00\u7f16\u5199\u4e8c\u8fdb\u5236\u8f6c\u6362\u5341\u8fdb\u5236\u7684\u7a0b\u5e8f\u3002

1\u3001\u4e3a\u4e86\u5b8c\u6210\u8fdb\u5236\u7684\u8f6c\u6362\uff0c\u5728\u4e3b\u51fd\u6570\u4e2d\u58f0\u660e\u4e86\u4e2a\u51fd\u6570Sum\uff0c\u4e3b\u8981\u7528\u4e8e\u5c06\u4e8c\u8fdb\u5236\u7684\u6bcf\u4e00\u4f4d\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u540e\u7684\u6570\u76f8\u52a0\uff0c\u8fd4\u56de\u503c\u5c31\u662f\u76f8\u52a0\u540e\u7684\u548c\u3002\u53e6\u5916\u5b9a\u4e49\u4e86\u4e00\u4e2a\u6570\u7ec4array[8]\uff0c\u7528\u4e8e\u5b58\u653e\u8f93\u5165\u7684\u516b\u4f4d\u4e8c\u8fdb\u5236\u6570\u3002

2\u3001\u7136\u540e\u4f7f\u7528\u4e86\u4e00\u4e2afor\u5faa\u73af\u8bed\u53e5\uff0c\u7528\u4e8e\u8f93\u5165\u516b\u4f4d\u4e8c\u8fdb\u5236\u6570\u3002\u5728scanf\u51fd\u6570\u91cc\uff0c\u5728%d\u4e4b\u95f4\u52a0\u4e86\u4e00\u4e2a1\uff0c\u5373%1d\uff0c\u8fd9\u6837\u662f\u597d\u8fde\u7eed\u7684\u8f93\u5165\u516b\u4e2a\u6570\uff0c\u5982\u679c\u6ca1\u6709\u4e2d\u95f4\u76841\uff0c\u5219\u7f16\u8bd1\u5668\u4f1a\u8ba4\u4e3a\u4f60\u53ea\u8f93\u5165\u4e86\u4e00\u4e2a\u6570\uff0c\u5373\u90a3\u4e2a\u516b\u4f4d\u6570\u3002\u7136\u540e\u4f7f\u7528printf\u51fd\u6570\u8f93\u51fa\uff0c\u5e76\u4e14\u8c03\u7528Sum\u51fd\u6570\uff0c\u6570\u7ec4\u540d\u4f5c\u4e3a\u5b9e\u53c2\u3002

3\u3001\u5728Sum\u51fd\u6570\u4e2d\uff0c\u53c8\u58f0\u660e\u4e86\u4e00\u4e2apower\u51fd\u6570\uff0cpower\u51fd\u6570\u7684\u4f5c\u7528\u662f\u6c422\u7684n\u6b21\u65b9\uff0c\u5176\u5b9e\u8fd9\u91cc\u53ef\u4ee5\u8c03\u7528\u5e93\u51fd\u6570pow\uff0c\u4f46\u662f\u8001\u5e08\u8981\u6c42\u4e0d\u8c03\u7528\u5e93\u51fd\u6570\uff0c\u56e0\u6b64\u5c31\u81ea\u5df1\u5199\u4e86\u4e00\u4e2a\u6c422\u7684n\u6b21\u65b9\u7684\u51fd\u6570\uff0c\u5728\u8fd9\u91ccn\u4e3a\u6307\u6570\uff0cterm\u4e3a\u6bcf\u4e00\u4f4d\u6570\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u540e\u7684\u7684\u6570\uff0c\u59821*(2*2)\uff0csum\u4e3a\u603b\u548c\u3002

4\u3001\u63a5\u7740\uff0c\u4f7f\u7528\u4e86\u4e00\u4e2afor\u5faa\u73af\u8bed\u53e5\uff0ci\u7528\u4e8e\u63a7\u5236\u5faa\u73af\u7684\u6b21\u6570\uff0cn\u4ece\u6700\u9ad8\u7684\u6307\u65707\u5f00\u59cb\u6bcf\u6b21\u5faa\u73af\u51cf\u4e00\uff0c\u5982\u679c\u6307\u6570\u5927\u4e8e\u6216\u7b49\u4e8e\u96f6\u7684\uff0c\u5c31\u8fdb\u884c\u5faa\u73af\uff0c\u56e0\u4e3a\u4e8c\u8fdb\u5236\u7684\u6700\u540e\u4e00\u4f4d\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u6570\u65f6\u6307\u6570\u5c31\u662f\u96f6\uff0c\u6b64\u540e\u5faa\u73af\u5c31\u7ed3\u675f\u3002\u8c03\u7528power\u51fd\u6570\u65f6\uff0c\u5c06n\u4f5c\u4e3a\u5b9e\u53c2\uff0c\u6700\u540e\u5c06\u548c\u8fd4\u56de\uff0c\u5373\u5c06sum\u4f5c\u4e3a\u8fd4\u56de\u503c\u8fd4\u56de\u7ed9Sum\u51fd\u6570\u3002

5\u3001\u5728power\u51fd\u6570\u4e2d\uff0c\u5982\u679cb\u7b49\u4e8e\u96f6\uff0c\u5373\u6307\u6570\u4e3a\u96f6\uff0c\u5219\u8fd4\u56de1\uff0c\u5426\u5219\u5c31\u8fdb\u5165\u4e00\u4e2a\u5faa\u73af\uff0cj\u7528\u4e8e\u63a7\u5236\u5faa\u73af\u6b21\u6570\uff0c\u6709\u7591\u95ee\u7684\u53ef\u4ee5\u7528\u7b14\u7b97\u7b97\u4e582\u7684\u4e2a\u6570\u5bf9\u4e0d\u5bf9\uff0c\u6700\u540e\u5c06i\u8fd4\u56de\u3002


6\u3001\u6700\u540e\u770b\u4e00\u4e0b\u8fd0\u884c\u7684\u7ed3\u679c\u3002

\u7f51\u4e0a\u770b\u4e86\u5f88\u591a\uff0c\u4e0b\u9762\u8fd9\u4e2a\u6700\u8d5e
#include
void
showbit(int
n)
{
if(n>1){
showbit(n/2);
printf("
");
}
printf("%d",n%2);
}
int
main{
int
a;
printf("input
a
num:");
scanf("%d",&a);
showbit(a);
printf("\n");
}
\u53c2\u8003\u91cc\u9762\u8fd8\u6709\u5176\u4ed6\u8fdb\u4f4d\u5236\u7684\u8f6c\u6362\uff0c\u90fd\u662f\u5229\u7528\u8fed\u4ee3\u7b97\u6cd5

#include "stdio.h"

int main()

{

     int n;

     int i=0,j;

     char str[100]={0};

     char output[100]={0};

     printf("请输入一个整数:");

     scanf("%d",&n);

     while(n)

     {

           str[i]=n%2+'0';

           n=n/2;

           i++;

     }

     for(j=0;j<i;j++)

         output[j]=str[i-1-j];

     printf("该整数的二进制表示为:%s
",output);

     

 

}



十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(int value,char*string,int radix);
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
参考代码:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i=10;
char a[100];
itoa(i,a,2);
printf("%s\n",a);
return 0;
}
/*
1010
*/

代码如下,算得挺准的:
#include<stdio.h>
int main(void){
int n,i,c=0,s[25];
scanf("%d",&n);
for(i=n;i;i-=1){
s[c]=i%2;
c+=1;
}
for(c-=1;c>0;c-=1){
printf("%d",&s[c]);
}
return 0;
}

#include<stdio.h>
int main()
{
int n,a[1000]={0},j;
scanf("%d",&n);
for(int i=0;n;i++)
{
a[i]=n%2;
n/=2;
j=i;
}
for(j;j>=0;--j)
printf("%d",a[j]);
printf("\n");
return 0;
}

输出的时候把格式符改下不就行了么-_-#

  • 鐢c璇█缂涓涓▼搴,杈撳叆10涓鐢熺殑鎴愮哗,姹傚钩鍧囧笺
    绛旓細int i, score, sum = 0;float avg;printf("璇疯緭鍏10涓鐢熺殑鎴愮哗锛歕n");for (i = 1; i <= 10; i++){ printf("绗%d涓鐢熺殑鎴愮哗锛", i);scanf("%d", &score);sum += score; // 绱姞鎴愮哗 } avg = (float)sum / 10; // 璁$畻骞冲潎鍊 printf("10涓鐢熺殑骞冲潎鎴愮哗涓猴細%.2f...
  • 鐢c璇█鍐涓涓畝鍗曠殑绋嬪簭,灏辨槸鍦ㄩ敭鐩樹笂杈撳叆10涓暟,鐒跺悗姹傚钩鍧囨暟_鐧惧害...
    绛旓細include <stdio.h>int main(void){ int a[10], sum = 0; for(int i = 0; i < 10; i++) { scanf("%d", &a[i]); sum += a[i]; } printf("%f", sum / 10.); return 0;}
  • 鐢C璇█缂栧啓涓涓▼搴: 浠庨敭鐩樿緭鍏 10 涓暣鏁,姹傚嚭鍏朵腑鐨勬渶澶у笺
    绛旓細璇疯緭鍏10涓暣鏁帮細1 2 3 56 23 6 767 32 11 567 max=767 min=1 璇锋寜浠绘剰閿户缁. . .
  • 鐢c璇█缂涓涓▼搴:鏈10涓鐢,姣忎釜瀛︾敓鐨勬暟鎹寘鎷:瀛﹀彿銆佸鍚嶃佷笁闂...
    绛旓細return(y[p-1]);} float f033(struct stu a[]){ float c,max=0;int i,j;for(i=0;i<10;i++)for(j=0;j<5;j++)if(a[i].score[j]>=max)max=a[i].score[j];for(i=0;i<10;i++)for(j=0;j<5;j++)if(a[i].score[j]==max)c=a[i].score[j];return(c);} i...
  • 鎬庢牱浣跨敤C璇█杈撳叆鍗佷釜鏁拌绠楁渶澶у煎拰鏈灏忓笺
    绛旓細瑕佷娇鐢C璇█杈撳叆鍗佷釜鏁板苟璁$畻鍑鸿繖浜涙暟涓殑鏈澶у煎拰鏈灏忓硷紝浣犲彲浠浣跨敤涓涓畝鍗曠殑寰幆鍜屽嚑涓彉閲忔潵璺熻釜鏈澶у煎拰鏈灏忓笺備互涓嬫槸涓涓畝鍗曠殑绀轰緥绋嬪簭锛```c include <stdio.h> include <limits.h> // 涓轰簡浣跨敤INT_MAX鍜孖NT_MIN int main() { int numbers[10]; // 瀛樺偍杈撳叆鐨鍗涓暟 int max...
  • C璇█璇风紪鍐涓涓▼搴杈撳叆鍗佷釜鏁存暟瀛樺叆涓涓暟缁勪腑姹傝鏁扮粍涓笅鏍囦负鍋舵暟鐨...
    绛旓細include<stdio.h> int main(){ int a[10];printf("璇疯緭鍏10涓暣鏁");int i,j;int count=0;for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<10;j++)if(j%2==0)count+=a[j];printf("%d",count);}
  • c璇█浠绘剰杈撳叆10涓暟,璁$畻骞惰緭鍑烘渶澶у煎拰鏈灏忓
    绛旓細瑕佺紪鍐涓涓狢璇█绋嬪簭锛屽彲浠ユ帴鏀剁敤鎴疯緭鍏鐨10涓暣鏁帮紝鐒跺悗璁$畻骞惰緭鍑哄叾涓殑鏈澶у煎拰鏈灏忓笺備互涓嬫槸瀹炵幇杩欎竴鍔熻兘鐨勪唬鐮佺墖娈碉細c include int main() { int loop = 10, min, max, value;printf("璇疯緭鍏10涓暣鏁:"); // 鎻愮ず鐢ㄦ埛杈撳叆 do { scanf("%d", &value); // 璇诲彇鐢ㄦ埛杈撳叆 if (loop ...
  • c璇█缂栫▼:瀵10涓暟鍐掓场鎺掑簭(鍗囧簭)銆
    绛旓細int main(){ int number[10] = {95, 45, 15, 78, 84, 51, 24, 12锛34锛23};for (int j = 0; j < 9; j++)for (int i = 0; i < 9 - j; i++锛 { if(a[i] > a[i + 1]) { int temp = a[i];a[i] = a[i + 1];a[i + 1] = temp; } } fo...
  • 濡備綍鐢C璇█缂栧啓涓涓畝鍗曠殑绋嬪簭!
    绛旓細01 榧犳爣宸﹂敭鍙屽嚮c璇█杞欢锛屾墦寮锛屾墦寮鍚庣晫闈㈠鍥撅紝鐐瑰嚮鍏抽棴鍗冲彲 02 鐐瑰嚮涓婃柟绋嬪簭绐楀彛宸︿笂瑙掔殑鏂囦欢锛岄夋嫨鏂板缓 03 鍦ㄦ墦寮鐨勭獥鍙d腑閫夋嫨鏂囦欢锛屼笅杈逛竴鑸槸绗洓涓 c++Source file锛岃緭鍏ユ枃浠跺悕锛坔ellw.c锛夛紝涓瀹氳浠モ.
  • C璇█绠鍗灏忛鐩:缂栧啓绋嬪簭,杈撳叆涓涓崄杩涘埗鏁存暟,灏嗗叾鍙樻崲涓轰簩杩涘埗鍚庡瓨鍌...
    绛旓細int main(){ int a[MAX];int num;int i;int sign=1;printf("please input the number:");scanf("%d",&num);if(num<0){ num=~num+1;sign=-1;} if(sign==1)a[0]=0;else a[0]=1;for(i=MAX-1;i>0;i--){ a[i]=num & 1;num=num>>1;} for(i=0;i<MAX;i++){ ...
  • 扩展阅读:学编程一年大概多少钱 ... c++简单程序实例 ... 小程序开发收费价目表 ... 简单的c++程序 ... 初学编程必背50个 ... 为什么不建议孩子学编程 ... c++入门程序代码 ... 简单的c程序代码 ... 编写程序 输入一个整数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网