十進位制轉二進位制 c語言,十進位制轉二進位制 C語言

時間 2022-04-20 10:31:32

1樓:測繪二哈

由於十進位制在轉換為二進位制的時候需要反序輸出,你的這個程式是正續輸出的,就不正確的恩,就需要定義乙個陣列的呢。

現給你乙個更加完整的程式如下:

#include

#include

void main()

if(m!=(int)m)//選擇性計算,如果是整數就不用進行這一步的計算了,這樣可以節約程式的執行時間 }

printf("轉換結果為:");

if(x<0)

printf("-");

for(j=i-1;j>=0;j--)//反序輸出,大於10的數字進行相應的變化

if(m!=(int)m)//選擇性輸出,這樣可以節約輸出時間和程式的執行時間

詳細的介紹請參看:

2樓:匿名使用者

糾正你個錯誤,物件導向一般指的是做軟體,比如加乙個什麼控制項等。你的最後乙個1是必打出來的,也就是不管i是偶數還是奇數,總會打出個1來。所以是錯誤的,你把while(i!

=1)改成while(i<1/2) 把最後的printf去了

3樓:匿名使用者

你**錯誤太多,while (i!=1)

應改為while (i!=0)而且餘數應該倒序輸出,你全給順序輸出了,而卻有些繁瑣的東西可以去掉。

#include

void main()

for(i=n;i>=1;i--)

printf("%d ",a[i]);}

十進位制轉化二進位制,c語言用呼叫函式

4樓:肥仙女

1、開啟visualc++6.0-檔案-新建-檔案-c++sourcefile。

2、輸入預處理命令和主函式:

#include/*輸入輸出標頭檔案*/

voidmain()/*空型別:主函式*/

3、定義變數和陣列的資料型別並輸入乙個十進位制:

intb[16],x,k,r,i;/*定義變數和陣列的資料型別為整型*/

printf("輸入乙個十進位制:");/*輸出文字提示*/

scanf("%d",&x);         /*輸入乙個十進位制數字*/

k=-1;/*將-1賦給k*/

4、用除r取餘倒計法將十進位制的數轉化成二進位制的數:

do/*用迴圈將十進位制的數轉化成二進位制的數*/

r=x%2;/*用除r取餘倒計法計算二進位制*/

b[++k]=r;/*將值賦給陣列*/

x/=2;/*將原數除2*/

}while(x>=1);

5、輸出結果:

for(i=k;i>=0;i--)        /*將上面倒計的數正回來*/

printf("%d",b[i]);/*輸出結果*/

printf("\n");

6、完整的源**:

#include/*輸入輸出標頭檔案*/

voidmain()/*空型別:主函式*/

intb[16],x,k,r,i;/*定義變數和陣列的資料型別為整型*/

printf("輸入乙個十進位制:");/*輸出文字提示*/

scanf("%d",&x);         /*輸入乙個十進位制數字*/

k=-1;/*將-1賦給k*/

do/*用迴圈將十進位制的數轉化成二進位制的數*/

r=x%2;/*用除r取餘倒計法計算二進位制*/

b[++k]=r;/*將值賦給陣列*/

x/=2;/*將原數除2*/

}while(x>=1);

for(i=k;i>=0;i--)        /*將上面倒計的數正回來*/

printf("%d",b[i]);/*輸出結果*/

printf("\n");

5樓:依蘭彬歌

如果是在windows下,可以使用itoa()函式來進行轉換,如:

#include

#include

void main()

itoa是廣泛應用的非標準c語言擴充套件函式。由於它不是標準c語言函式,所以不能在所有的編譯器中使用。

標頭檔案:#include

函式原型:char*itoa(int value,char*string,int radix);

函式說明:int value 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8,10,16 進製等,將數字按要求轉換為對應進製的字串

因為itoa並不是乙個標準的c函式,它是windows特有的,所以若在linux下進行二進位制轉換,就要自己動手自定義函式來實現了。

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樓:super遊戲大神

int i=0;

char b[32]=;

while(n!=0)

c語言十進位制轉二進位制

11樓:何老師**答疑

十進位制轉二進位制可以使用庫函式itoa。

itoa函式原型:char*itoa(int value,char*string,int radix);

功能:將任意型別的數字轉換為字串。在中與之有相反功能的函式是atoi。

nt value 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8,10,16 進製等。

擴充套件資料:

方法#include

int main(void)

printf("十進位制整數轉換為二進位制數是:\n");

for(i--;i>=0;i--)

printf("%d",a[i]);

printf("\n");

return 0;}

十進位制整數轉換為二進位制整數的方法:

十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。

具體做法是:用2去除十進位制整數,可以得到乙個商和餘數;再用2去除商,又會得到乙個商和餘數,如此進行,直到商為零時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

12樓:彭珂的課堂

c語言_010_二進位制轉十進位制_上

13樓:魯禮常胭

使用庫函式itoa。

itoa函式原型:char

*itoa(int

value,char*string,intradix);

功能:將任意型別的數字轉換為字串。

其中int

value

被轉換的整數,char

*string

轉換後儲存的字元陣列,int

radix

轉換進製數,如2,8,10,16

進製等。

參考**:

#include

#include

int main()

/*執行結果:把十進位制的15轉成2進製

151111*/

14樓:泰恬仰清秋

樓主最先求出來的,就是最低位。

可用個陣列,依次存放各個位,然後倒次序著顯示,就可以得到正確的次序。

但是不如下面的簡單:

#include

#include

main()

15樓:ma饅頭

把十進位制變成二進位制是反覆取餘除2的,這種方法沒錯,但是應該逆序讀出0或1的序列,才是正確的。

語法正確,邏輯錯誤。不信在紙上算一下就能看出來了。

16樓:慮而後能得

#include

void to_binary(unsigned long n);

int main(void)

printf("done \n");

return 0;

}void to_binary(unsigned long n)此為標準程式

#include

#include

int main(void)

a[i++] = '1';

a[i++] = '\0';

m = strlen(a);

for(i=m-1; i>=0; i--)printf("%c",a[i]);

printf("\n");

printf("please enter an integer(q to quit):\n");

}printf("bye!\n");

return 0;

}此為我自己做的,可以節省記憶體。

17樓:

呵呵這樣做的確輸出的是反過來的數

方法一:

可以利用陣列順序儲存轉換過程中依次得到每個數字位,轉換結束後再按相反的次序輸出陣列內容即可得到正確的結果。

方法二:

直接搞掂,這才叫強!!!

且看我如何強法!!

#include

void trans(int x)

while(x!=0);//這個演算法看你的**知道你懂!:)while(i>0)

printf("%d",a[--i]);

printf("\n");//這就是我的精華了,倒輸出正確順序的數~}void main()

我覺得樓主的水平也不差,

應該看得懂吧

我只是加了幾句而已

加分哦:)

C 十進位制轉二進位制,C 十進位制轉化二進位制寫法

include using namespace std void dec2bin int n if n 1 dec2bin n 2 cout int n cin n dec2bin n return 0 c 十進位制轉化二進位制寫法 十進位制整數轉換為二進位制整數採用 除2取餘,逆序排列 法。具體做...

c二進位制轉十進位制,二進位制如何轉為十進位制 浮點數 c

這個問題很基礎,先給你說說思路,然後再告訴你 首先,輸入乙個字串。由於一般整數int型別為4個位元組,32位。所以要求輸入的字串不能超過32位,超過了的話,在程式中就無法顯示出來了。其次,判定字串的長度 可以用strlen 也可以用別的方式 加入字串長度為i。從字串第一位開始判定,如果字元第j位是 ...

二進位制數轉十進位制數的演算法,十進位制轉二進位制演算法

你可以這樣看 十進位制例子 1 1 1 1 原始值 3 2 1 0 次方數 10 10 10 10 進製值 1000 100 10 1 每一位得出值 進製值的次方數x原始值 得出 1111 每一位得出值相加 二進位制例子 1 1 1 1 原始值 3 2 1 0 次方數 2 2 2 2 進製值 8 4...

書上的C語言填空十進位制轉二進位制

這道題本身有兩處錯誤,一處是for j 1那應該是for j k,另外一處是printf ld應該是printf d 修正後的 為 int main while x 0 for j k j 0 j printf d a j for j 1 j 有問題。估計書本錯誤。修改後 include void ...

c 十進位制轉化二進位制寫法,C 十進位制轉化二進位制寫法

十進位制整數轉換為二進位制整數採用 除2取餘,逆序排列 法。具體做法是 用2整除十進位制整數,可以得到乙個商和餘數 再用2去除商,又會得到乙個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。例如 include...