編寫C程式,要求使用者輸入十進位制正整數,然後分別轉換成為二進位制數,八進位制數和十六進位制數輸出

2021-03-25 05:34:02 字數 6470 閱讀 5361

1樓:匿名使用者

int num = 10;//數字10轉換如下string result1 = convert.tostring(num, 2); //二進位制結果為 1010

string result2 = convert.tostring(num, 8);//八進位制結果為 12

string result3 = convert.tostring(num, 16);//十六進位制結果為 a

2樓:現實夢想的抉擇

public void shownumber()}}

編寫一個程式,要求使用者輸入一個十進位制正整數,然後分別轉換成為二進位制數、八進位制數和十六進位制數輸出

3樓:匿名使用者

樓上的太複雜了吧!c的話直接這樣:

main()

printf("二進位制為%s",x);}

4樓:

這段**是我用c語言寫的,可以實現多個功能的進位制轉換,你參考參考:

#include

#include

#include

void menu();

int bintobex(char str[100],int b);

char * bextobth(int n,int b);

int main()

while(x>12||x<0);

char str[100];

int n;

switch(x)

}return 1;

}void menu()

int bintobex(char str[100],int b)str[i]=0;

len=strlen(str);

for(i=0;i

return str;}

5樓:可の獨角

你是用什麼語言的啊?如果沒有直接轉換的話一般方式如下:

對於轉換成n進位制的數s,先讀入數字,判斷它在n^a與n^(a+1)之間,令m=0,然後進行迴圈:m=m*10; s div n^a得到的數值存入m,令n為n mod n^a; a=a-1;直到n為0

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

6樓:匿名使用者

#include

using namespace std;

int main()

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

cout<

cout<

}如果有不懂請追問。

7樓:支景明孔茶

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

8樓:匿名使用者

有一個轉換函式很好用:

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

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

標頭檔案: itoa操作使用

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

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

9樓:匿名使用者

有輸出格式設定的,

#include

#include

int main()

編寫一個程式,然後分別轉換成為二進位制數,八進位制數和16進位制數輸出。謝謝了我才學到c++第二章,請用

10樓:匿名使用者

#include

using namespace std;

int n,a[100];

int main()

cout<=1;i--)

cout<0)

cout<=1;i--)

cout<0)

cout<=1;i--)

{if (a[i]>9)

{char t=a[i]+55;

cout<

11樓:匿名使用者

#include

#include

#include

char h=;

int main()

puts("轉換為2進位制數結果:");

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

printf("\n");

//---------------------------------------

n=0; d=d0;

while(d>0)

puts("轉換為8進位制數結果:");

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

printf("\n");

//---------------------------------------

n=0; d=d0;

while(d>0)

puts("轉換為16進位制數結果:");

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

printf("\n");

return 0;

}執行結果:

請輸入一個10進位制數:

111111

轉換為2進位制數結果:

11011001000000111

轉換為8進位制數結果:

331007

轉換為16進位制數結果:

1b207

c#7.編一個程式,輸入一個正整數n,把它轉換為二進位制數,並輸出。提示,應該利用陣列。

12樓:匿名使用者

using system;

public class test

}console.write("轉換為二進位制後是:");

for(int i=j;i>=0;i--)console.write("",arr[i]);

console.writeline ();}}

13樓:筱喬々流水

很簡單的啊

和c語言演算法是一樣的

在進行輸入數的時候你最好用下try catch 語句控制一下

c#語言編寫**,將一個10進位制正整數轉換成2進位制字串。

14樓:匿名使用者

using system;

using system.collections.generic;

using system.text;

namespace test

}static void main(string args)}}測試結果如圖所示

15樓:麗舞傾心

//輸入一個正整數,輸出對應的二進位制字串#include

#define max 100

int main()

else

num /= digit;

}printf("%s", &str[max - i]);

return 0;}

16樓:free放開

用十進位制的除以2,例如

789=1100010101  789/2=394.5 =1 第10位   394/2=197 =0 第9位   197/2=98.5 =1 第8位   98/2=49 =0 第7位   49/2=24.

5 =1 第6位   24/2=12 =0 第5位   12/2=6 =0 第4位   6/2=3 =0 第3位   3/2=1.5 =1 第2位   1/2=0.5 =1 第1位

將二進位制數(110110010.100101)b分別轉換成八進位制,十進位制,十六進位制

17樓:水瓶一頭老母豬

^^1、二進位制轉為八進位制

110110010.100101(2)→110'110'010.100'101(2)=662.45(8)。

2、二進位制轉為十進位制

110110010.100101(2)=1*2^8+1*2^7+0*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+0*2^0+1*2^(-1)+0*2^(-2)+0*2^(-3)+1*2^(-4)+0*2^(-5)+1*2^(-6)

=256+128+0+32+16+0+0+2+0+1/2+0+0+1/16+0+1/64

=434.578125(10)。

3、二進位制轉為十六進位制

110110010.100101(2)→1'1011'0010.1001'01(2)→0001'1011'0010.1001'0100(2)

=1b2.94(16)。

進位制/位置計數法是一種記數方式,故亦稱進位記數法/位值計數法,可以用有限的數字符號代表所有的數值。可使用數字符號的數目稱為基數(en:radix)或底數,基數為n,即可稱n進位制,簡稱n進位制。

現在最常用的是十進位制,通常使用10個阿拉伯數字0-9進行記數。

18樓:

^110110010.100101(2)→110'110'010.100'101(2)=662.45(8)。

110110010.100101(2)=1*2^8+1*2^7+0*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+0*2^0+1*2^(-1)+0*2^(-2)+0*2^(-3)+1*2^(-4)+0*2^(-5)+1*2^(-6)

=256+128+0+32+16+0+0+2+0+1/2+0+0+1/16+0+1/64

=434.578125(10)。

110110010.100101(2)→1'1011'0010.1001'01(2)→0001'1011'0010.1001'0100(2)

=1b2.94(16)。

19樓:毛來福養雲

用除2(8,16)求餘法,

意思是,

比如八進位制的:

79/8=9....7

9/8=1...1

所以,117就是八進位制的,相當十進位制的79;

二進位制的:

79/2=34...1

34/2=17...0

17/2=8....1

8/2=4...0

4/2=2...0

2/2=1...0

1/1=0...1

所以是:1000101

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

20樓:匿名使用者

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

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

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

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

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

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

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

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

21樓:oo墨色傾城

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

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

int main()

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

cout<

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

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

22樓:匿名使用者

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

程式設計實現:輸入一個十進位制數,轉換成對應的二進位制數、八進位制數和十六進位制數並輸出。

23樓:墨汁諾

1、#include

using namespace std;

int main()

cout

cout

2、main()

printf("二進位制為%s",x);}

24樓:匿名使用者

以下是c++的:

#include

using namespace std;

int main()

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

cout<

cout<

C編寫程式,將使用者輸入的十進位制整數轉換成任意進位制的

1 首先,定義四個整型變數,儲存十進位制整數 二進位制整數等計算值。2 給變數i和二進位制數賦初值,值為0。3 接著,輸入一個十進位制整數。4 用while語句判斷,條件為十進位制數是否為零。5 當十進位制數不為零時,對十進位制數用2求餘,儲存在變數d中。6 十進位制數除以2,使數值縮小為原來的二分...

c語言編寫源程式,實現輸入任意十進位制數,將其按八進

include stdio.h main c語言寫程式任意輸入一個小寫字母,分別按 八進位制,十進位制,十六進位制,字元格式輸出 include void main 這個執行得起,是最簡單的。但是並不穩健,沒有涉及你輸入大寫的時候的錯誤提示,等等.include stdio.h void main ...

c語言程式輸入十進位制數將其轉換為二進位制

include int main for int j i 1 j 0 j printf d bin j printf n c語言程式設計題 從鍵盤輸入一個十進位制數,將其轉換為二進位制 八進位制和十六進位制數,並同時輸出。這題非常簡單,你要學過資料結構就非常容易 我用個棧來幫你做 此棧資料項為整型,...