c語言將十進位制轉化為二進位制,c語言程式設計,如何將十進位制轉化為2進位制

2021-07-01 01:46:19 字數 4337 閱讀 6452

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...