1樓:匿名使用者
十進位制轉二進位制可以使用庫函式itoa。
itoa函式原型:char*itoa(int value,char*string,int radix);
功能:將任意型別的數字轉換為字串。在中與之有相反功能的函式是atoi。
nt value 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進位制數,如2,8,10,16 進位制等。
#include
#include
int main()
/*1010*/
2樓:彭珂的課堂
c語言_010_二進位制轉十進位制_上
3樓:匿名使用者
int dectobin(int n)
}return num;
}你這個程式邏輯,最多隻能支援到1023,因為你用int表達二進位制,最多隻能表示10個1。
4樓:耘熵
換一種思路,會更簡單些,給點時間,我寫一個給你。
#include
void dectobin(int n, char *po)//以上字元方向是反的,現調整過來
for (i = 0; i < cnt; i++)po[i] = chtmp[cnt - 1 - i];
po[i] = 0; //字串結尾的 0}void dectobin2(int n, char *po)//如果有必要,除去二進位制數前面的 0
/*for (j = 0; j < 32; j++)for (i = j; i < 32; i++)po[i - j] = 0; //字串結尾的 0*/}int main()
printf("\n");
system("pause");
return 0;}
5樓:匿名使用者
感覺你這個好像不對,而且pow函式的返回值是double型別的,所以if(n/pow(2,i)==1)這個條件永遠滿足不了,用int儲存最後的結果也不好,因為結果很容易溢位,pow的結果也容易溢位,下面是我寫的一個,參考下吧,希望對你有幫助
int dectobin(int n,char* des)des[0] = tmpn%2+'0';
i++;
tmpn /= 2;
} while (tmpn);
return num;
}int _tmain(int argc, _tchar* argv)
;printf("請輸入十進位制數:");
scanf("%d",&n);
i=dectobin(n,tmp);
printf("%s\n",tmp);
return 0;}
c語言程式設計,如何將十進位制轉化為2進位制
6樓:匿名使用者
c語言程式設計將十進位制轉化為2進位制可按手工轉換規則進行程式轉換。
整數佔四個位元組,每位元組8位,共32位。所以,可以定義一個32位的陣列來儲存轉換結果。
迴圈將整數進行除2取餘數,餘數儲存到陣列中。
當整數整除為0時,結束迴圈
逆序輸出陣列,得到轉換結果
參考**:
#include
void main()
while(n!=0) ;
for(i--;i>=0;i--)
printf("%d",c[i] );
printf("\n");}
7樓:匿名使用者
//do while把for改改
#include
#include
//函式宣告
void tenttwo(int x);
void main()
//函式實現
void tenttwo(int x)
while(x!=1);
d[num]=1; //最後一個數為1
/* for(j=0;j<1000;j++)num++;
}*///num++;
//逆向輸出陣列中的資料拼接成二進位制數
for(j=num;j>=0;j--)
printf("%d",d[j]);
printf("\n");}
8樓:
//#include "stdafx.h"//vc++6.0加上這一行.
#include "stdio.h"
void dfs(int k)
void main(void)
9樓:知道不知道巨蟹
#include "stdio.h"
#define stacksize 100typedef int elemtype;
typedef struct sqstack;
initstack(sqstack *ps)int push(sqstack *ps,elemtype e)int pop(sqstack *ps,elemtype *pe)main()
while(n);
while(pop(&s,&e))
printf("\n");
return 0;}
10樓:閒來無事
#include
#include
void main()
while (iinput);
printf("\n結果
:%d", iresult);}
11樓:super遊戲大神
int i=0;
char b[32]=;
while(n!=0)
怎麼用c語言程式設計把十進位制轉化成二進位制
12樓:偶藹程豫
c語言bai
中沒有二進位制的格式輸出du符號.
你可以用itoa函式
zhi很方便的將一個dao10進位制int轉變成二進回制字串.
如:int
i;char
s[128];
scanf("%d",&i);
itoa(i,
s,2);
/*3個引數,第一個是答待轉換的數,第二個是存放轉換後的字串,第三個即需要轉換的進位制*/
printf("該數轉換為二進位制是:
[%s]\n",s);
補充一點,itoa函式的標頭檔案是stdlib.h
如何用c語言將十進位制數轉換為二進位制數
13樓:慣性俺
#include
long int btd(char *s) /*將以字串形式儲存在s地址中的二進位制數字轉換為對應的十進位制數字*/
c語言怎麼將十進位制轉化成二進位制
14樓:匿名使用者
#include
void main()
int transfer(int x)
}return y;
}擴充套件資料:(1)二進位制轉十進位制
方法:“按權求和”
【例】:
規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
注意:不是任何一個十進位制小數都能轉換成有限位的二進位制數。
(2)十進位制轉二進位制
十進位制整數轉二進位制數:“除以2取餘,逆序排列”(除二取餘法)【例】:
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1十進位制小數轉二進位制數:“乘以2取整,順序排列”(乘2取整法)
15樓:
#include
int main()
printf("二進位制:");
while(i>0)
printf("%d",s[--i]);
printf("\n");
return 0;}
16樓:great我的一
就是那個例題,寫的話太麻煩了
c語言程式設計,將十進位制整數轉化為二進位制
17樓:匿名使用者
首先需要明確十進位制轉為二進位制的演算法:將所需轉化的數除以2,所得餘數為k1,將所得商再除以2,所得餘數為k2…...重複步驟直到商為0;讀數時從最後一個餘數讀起,即kn,k(n-1)…k2,k1;所得數便是轉化成的二進位制數(除二取餘法)
c語言十進位制數轉化為二進位制數,C語言 十進位制數轉化為二進位制數
思路 十進位制整數轉換為二進位制整數採用 除2取餘,逆序排列 法。即用2整除十進位制整數,可以得到一個商和餘數 再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。include stdi...
將十進位制數轉化為二進位制數59 8125轉為二進位制數答案
59 2 29餘1 29 2 14餘1 14 2 7餘0 7 2 3餘1 3 2 1餘1 1 2 0餘1 從下到上取餘數為 111011,整數59轉換結果為111011,0.8125x2 1.625取整1 0.625x2 1.25取整1 0.25x2 0.5取整0 0.5x2 1.0取整1 小數0....
十進位制21425轉化為二進位制,八進位制十六進位制要過程
214 10 0 1010 10 1010 1 1010 100 2 10 1010 1 1010 100 2 10100 1 1010 100 2 10101 1010 100 2 11010010 100 2 11010110 2 011 010 110 2 326 8 11010110 2 1...