用c 編了把十進位制數轉換為二進位制數的程式,但執行結果與預期不符,請高手幫忙糾錯

2021-04-08 23:56:46 字數 5204 閱讀 8152

1樓:殘濤驚夢

你的**太亂了

你的思路也是很不清晰了

我介紹寫這類的**思路,我們將整數的二進位制求出,也就是求出每乙個商(包括輸入數)的/2的餘數,然後把這些餘數儲存在陣列b[ ]中

例如:輸入5

那麼執行的思路是:

當input不等於1時

b[0]=5%2 //結果為1,即b[0]=1;

input=input/2 //結果為2,即input=2當input不等於1時

b[0]=2%2 //結果為0,即b[1]=0;

input=input/2 //結果為1,即input=1input=1,跳出迴圈,設定b[2]=1;

然後依次反方向輸出b[ ]陣列;

即:101 //分別為b[2]、b[1]、b[0]的值下面是**

#include

using namespace std;

void main()

2樓:匿名使用者

當你的input是3的時候就不對了。。。感覺的while裡面的都有問題,重新寫吧

用c++編乙個把十進位制轉換成二進位制的程式

3樓:匿名使用者

#include

using namespace std;

#define len 20

void convert(int n,int a)}for(int j=0;j<=i;j++)}void main()

else return;}}

4樓:人定勝天

using namespace std;

#define len 20

void convert(int n,int a)}for(int j=0;j<=i;j++){

5樓:匿名使用者

#includeint main(),i=0; cout<<"請輸入乙個十進位制數!"<>num; while(i<32) for(i=31;i>=0;i--) cout<

用c++輸入乙個十進位制數,將其轉換為二進位制數輸出。

6樓:匿名使用者

十進位制數轉換為二進位制數的**為:

#include 〈iostream〉

#include 〈bitset〉

int main()

擴充套件資源:**中所使用的庫函式-bitset:

c++語言的乙個類庫,用來方便地管理一系列的bit位而不用程式設計師自己來寫**。

bitset除了可以訪問指定下標的bit位以外,還可以把它們作為乙個整數來進行某些統計。

可以如下宣告乙個該型別變數:

bitsetvarm (m)

其中varm為變數名。

n表示該型別在記憶體中佔的位數,是二進位制。

m表示變數varm的初始值。

參考資源:

7樓:大野瘦子

#include

void main()

int transfer(int x)

}return y;

}反之,二進位制轉化為十進位制

#include

using namespace std;

#include

int main()

8樓:

一、問題描述

十進位制數是指各位

數字全部由小於10的數字(0..9)組成的數值,如123、45678等。二進位制數是指各位數字全部由小於2的數字(0..

1)組成的數值,如10、1011等。將十進位制數轉換為二進位制數是將全部由小於10的數字組成的數值轉換為全部由小於2的數字組成的數值,如十進位制數100轉換為二進位制數為1100100。

二、演算法思想

將十進位制數轉換為二進位制數的演算法是採用輾轉取餘法,即將待轉換數不斷除2取餘,記錄餘數,用新的商繼續除2取餘,直到該數為零。由於餘數小於2,故所有餘數組成的數值全部由0、1組成。再對這些餘數進行逆置即可。

//輾轉取餘

while(num > 0)

//逆置餘數列表

for(i=0; i

三、參考程式

#include

#include

#define max 33

using namespace std;

/* 十進位制數轉換為二進位制數(字串表示) */char *dectobin(long num);

int main()

for(i=0; i

四、執行測試:

10進製數:       1234567892進製數:        111010110111100110100010101

9樓:匿名使用者

以前上學的時候寫過的乙個,你參考一下 #includeusing namespace std;

10樓:匿名使用者

#include

//十進位制數轉換成二

進製數字

void fun_1(int n)

}//主函式

void main()

吧沒有用的刪除即可,其他的只是擴充套件.....

11樓:匿名使用者

#include void main()

{int sec(int n);

int i;

cout<<"請輸入個10進製數:";

cin>>i;

sec(i);

cout<參考....

12樓:匿名使用者

直接用格式化輸出就可以啊

c++編寫程式 把任意10整數轉換成二進位制數。

13樓:落花盈香

#include

int main()

for(int j=i-1;j>=0;j--)return 0;}

c++ 編寫乙個程式,將使用者輸入的十進位制整數轉換成任意進製的數。

14樓:匿名使用者

1、首先,定義四個整型變數,儲存十進位制整數、二進位制整數等計算值。

2、給變數i和二進位制數賦初值,值為0。

3、接著,輸入乙個十進位制整數。

4、用while語句判斷,條件為十進位制數是否為零。

5、當十進位制數不為零時,對十進位制數用2求餘,儲存在變數d中。

6、十進位制數除以2,使數值縮小為原來的二分之一。

7、輸出十進位制數所對應的二進位制數。

8、執行程式,輸入任意乙個十進位制整數,計算機就會輸出對應的二進位制數。

15樓:oo墨色傾城

#include//我這個程式只針對2~16進製制的轉換using namespace std;

char str[17]=; //為了使程式簡化而提前定義將會輸出的數字

int main()

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

cout<

}程式已近經過我自己驗證後,無錯誤!

如果還需要加另外的功能,請lz自行修改即可。

16樓:匿名使用者

%x是十六進製制,%o是八進位制,其他的要用ls的方法計算啦

編寫乙個程式,將十進位制整數n 轉換成二進位制數。本人初學c++,求指導

17樓:

你這是c語言自

,不是c++.

#include

int main()

for(i=n-1; i>=0; i--)printf("%d", temp[i]);

}你要想下10進製zhi轉成2進製,是從最低位求起的,dao也就是求餘的結果要反過來,

你拿筆自己算算看。

18樓:匿名使用者

這個要用到掩bai碼。du

#include

int main()

}也可以用遞迴屬

void print_bit(int a)int main(void)

19樓:小張

用位運算操作,速度最快,效率最高,不懂再追問。

20樓:文建設連午

這個要用到掩copy

碼。#include

intmain()

}也可以用遞迴

daovoid

print_bit(int

a)int

main(void)

使用者輸入乙個十進位制正整數,然後分別轉換成為二進位制數、八進位制數和十六進製制數輸出。(是c++,不是c)

21樓:匿名使用者

#include

using namespace std;

int main()

cout<十六進製制使用格式化輸出即可,oct表示八進位制,hex表示十六進製制

cout<

cout<

}如果有不懂請追問。

22樓:支景明孔茶

確定問題沒有什麼別的要求??比如說111可以是二進位制也可以是八進位制和十六進製制。。。

23樓:匿名使用者

有乙個轉換函式很好用:

char *itoa(int value, char *string, int radix);

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

標頭檔案: itoa操作使用

但注意:這個不是c++標準庫函式,只能在visual c++系列編譯器環境下使用

想在gcc上做的話,可以設定輸出格式,也可以自己編函式進行轉換……

24樓:匿名使用者

有輸出格式設定的,

#include

#include

int main()

用c輸入十進位制數將其轉換為二進位制數輸出

十進位制數轉換為二進位制數的 為 include iostream include bitset int main 擴充套件資源 中所使用的庫函式 bitset c 語言的乙個類庫,用來方便地管理一系列的bit位而不用程式設計師自己來寫 bitset除了可以訪問指定下標的bit位以外,還可以把它們作...

二進位制小數怎麼轉換為十進位制,二進位制數如何轉換成十進位制數?

和整數一樣,從小數點後第一位開始算,第一位是1 2,第二位是1 4,然後是1 8,然後是1 16,以此類推,比如 二進位制1.011 1 0 1 2 1 1 4 1 1 8 1 0.25 0.125 十進位制1.375 用權啊 比如10.101的二進位制.對應十進位制為 1 2 1 0 2 0 1 ...

負二進位制數轉換為十進位制數的問題,二進位制數如何轉換成十進位制數?

這個簡單 首先你看首位是1還是0,0那麼直接換算。如果是1你把這個2進製轉化成十進位制,然後用256 換算的十進位制 得出來的值加個負號就是你要求的負數。原理就是補碼與原碼組成乙個數就是乙個位元組的最大值256.補碼是通過256 負數 得到。你多去想想會理解的 按權位。1 2 7 1 2 6 1 2...