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