C 輸出二進位制命令,C 如何輸出2進位制數

時間 2022-08-09 17:00:17

1樓:go陌小潔

有如下幾種方法:

#include 〈iostream〉

#include 〈list〉

#include 〈bitset〉

using namespace std;

1.//遞迴輸出二進位制函式

void binaryrecursion(int n)2.//使用容器轉換二進位制

void binaryvector(int n)for (list〈int〉::iterator iter=l.begin();iter!=l.end();iter++ )

cout〈〈*iter;

cout〈〈endl;

} 3.//一般方法,32位,逐步與1做與運算。

void binarycout(int n)cout〈〈endl;

} 4.//使用bitset轉換二進位制

void binarybitset(int n)int main()

2樓:

具體如下:

1.//遞迴輸出二進位制函式

void binaryrecursion(int n)int a;

a=n%2;

n=a;

if (n==0)

return;

else

binaryrecursion(n);

cout〈〈a;

2.//使用容器轉換二進位制

void binaryvector(int n)int temp;

temp=n;

list〈int〉 l;

while(temp!=0)

l.push_front(temp%2);

temp=temp〉〉1;

for (list〈int〉::iterator iter=l.begin();iter!=l.end();iter++ )

cout〈〈*iter;

cout〈〈endl;

3.//一般方法,32位,逐步與1做與運算。

cout〈〈endl;

4.//使用bitset轉換二進位制

void binarybitset(int n)cout〈〈bitset〈sizeof(int)*8〉(n)〈〈endl;

int main()

int a=1045,b=2;

int c;

c=a+b;

cout〈〈"binaryrecursion(c):";

binaryrecursion(c);

cout〈 binaryvector(c);

cout〈〈"binarycout(c):";

binarycout(c);

cout〈〈"binarybitset(c):";

binarybitset(c);

cout〈〈"binarychar(c):";

binarychar(c);

//cout〈 return 0;

3樓:匿名使用者

輸出沒有直接顯示二進位制的 ,能通過其他庫函式轉換一下int decimal = 200;

char binary[255];

itoa(decimal, binary, 2);

cout << binary;

4樓:匿名使用者

沒有這個命令,一般都是自己寫個函式來用的

5樓:匿名使用者

樓主用itoa吧,可以轉換各種進位制

6樓:

c++應該不具備這個功能吧

c++:如何輸出2進位制數

7樓:線曉絲介旺

給你一個用c++寫的程式,簡單的

#include

#include

using

namespace

std;

void

main()

{int

a;cin>>a;

cout<

(a)<

中的數來調輸出位數

8樓:偶念煙毓火

給你一個用c++寫的程式,簡單的

#include

#include

usingnamespacestd;

voidmain()

{inta;

cin>>a;

cout<(a)<中的數來調輸出位數

9樓:匿名使用者

一直除2把餘數記錄下來,反序輸出就是了

比如10:10/2 = 5 ... 0

5/2 = 2 ... 1

2/2 = 1 ... 0

10的二進位制數就是1010;

16: 16/2 = 8 ...0

8/2 = 4 ...0

4/2 = 2 ... 0

2/2 = 1 ... 0

16的二進位制數就是10000;

演算法就是這樣,**自己應該能寫了

吧,一個while迴圈,以商不為0當

作迴圈條件,自己寫的**才有成就感啊。

10樓:魔帥搖滾

這個是我以前學c的時候老師佈置的作業,希望可以幫助到你~#include

void a2();

void a8();

void a16();

void main()

}while(1);

}void a2()

printf("轉換成二進位制為:");

for(count = count - 1;count >= 0; count--)

printf("\n");

}void a8()

printf("轉換為八進位制為:");

for(count = count - 1;count >= 0; count--)

printf("\n");

}void a16()

printf("轉換成十六進位制為:");

for(count = count - 1;count >= 0; count--)

}printf("\n");}

11樓:素手起鋒芒

c++編寫程式將十進位制數轉化為八位二進位制輸出(要求用main)

c++中怎麼直接定義二進位制數

12樓:會飛的小兔子

c++不支援直接使用二進位制的數,只支援8,10,16三種進位制的直接定義。

計算機儲存資料就是2進位制的,如chara=97;那麼在計算機裡面的資訊就是01100001,用2進位制列印就是01100001,用10進位制列印就是97,因此只存在顯示方式的不同。

c++中天然的支援除10進位制之外的三種進位制的表示:

1、二進位制

例:intx=0b1001;//x=9

2、八進位制

例:inty=074;//x=60

3、十六進位制

例:intz=0xa3;//x=163;

擴充套件資料c++補碼及二進位制輸出

#include

usingnamespacestd;

voidmain()

while(1)

intn;

cin>>n;//最好有邊界檢查

inth=1;

h=h<<31;//32位,最高位1,其它位是0for(inti=1;i<=32;i++)if((n&h)==0)

cout<<0;

elsecout<<1;

n=n<<1;//左移一位,右位補0

if(i%4==0)

cout<<"";

cout

13樓:

c/c++不支援二進位制輸入輸出。

14樓:混帳東西

int s = 0b101010

是用0b代表二進位制描述。

0 八進位制

0x十六進位制

比如0b10 就是2

030 是 24

30 是30

0x30 是 48

15樓:紅色縹緲

給你一個用c++寫的程式,簡單的

#include

#include

using namespace std;

void main()

{int a;

cin>>a;

cout<(a)<中的數來調輸出位數

16樓:王者不農藥

不可以,可以用16進位制。

17樓:

c++14已經直接支援二進位制字面值 了,寫法是在前面加0b或0b,如:

int s=0b0101010;

int s1=0b0101010;

18樓:匿名使用者

int s=0b0101010;

c++14標準

c++如何輸入一個10進位制輸出一個2進位制或8進位制或16進位制

19樓:

#include

#include

void main()

{int n;

cout<<"請輸入一個十六進位制的資料:";

cin>>hex>>n;

cout<<"轉換為十進位制是:"<可以自己寫函式做了,只是這樣簡單好多!

20樓:濱崎步最愛

#include

using namespace std;

int main()

bool temp=false;

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

{if(b[i])temp=true;

if(temp)cout<進位制輸出,其他類似,或者直接用格式輸出oct

c++程式設計 將字串轉換為二進位制碼輸出

21樓:聽不清啊

可以定義一個函式,實現把一個字元轉換為二進位制碼輸出。

在函式中,先將1左移7位,就可以得到二進位制值10000000,再將此值與一個字元「按位與」,然後判斷其值是否為0。不為0就輸出1,否則就輸出0。類似的操作做8次,就可以輸出一個位元組的8位二進位制碼了。

#include

void prt(char c)

{int i;

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

printf("%d",(c & 1

int main()

{ char s[100];

int i;

gets(s);

for(i=0;s[i];i++)

prt(s[i]);

printf("\n");

return 0;

22樓:匿名使用者

我對c++某些細節規定不是太熟悉,不能全面檢查您的程式,只指出兩點:

一、您的str2定義的是char型,不是整數型,故cout << str2 << endl;輸出時,沒有把它當成0或1,而是把它當成了ascii碼為0或1的字元,即'\0'和'\1'。

而這兩個字元都屬於「控制符」,顯示不出來的。

糾正方法:將str2定義換成int型。

如不想改str2定義的型別,也可以另法:將str2 = str2 & 1;改成str2 = (str2 & 1)+'0';

二、您的輸出是豎排的,且低位在前高位在後。似乎不合要求吧?如需高位在前可將

str[i] >> i;

改為str[i] >> (7- i);

如需橫排,則去掉endl即可。

23樓:

????? for(int i=0; i<8; i++){????? str2 = str[i] >> i;

????? str2 = str2 & 1;

????? cout << str2 << endl;

==>for(int i=0; i=0; j++) cout << (str2>>i)&1;

cout << endl;

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

樓上的 好像還是不能解決浮點數的問題啊 int i 0 int j,k 0 double value 0.0 char d 100 cout 請輸入 n cin d j strlen d for i j 1 i 0 i cout 十進位制是 這段可以解決二進位制轉為十進位制 但是不能實現浮點數的運算...

c語言輸入n個二進位制數,輸出其中1的個數

冰是沉默的水 include include int main for j 0 j個數 if b j 1 k printf d k getch 剛寫的,符合你要求吧? include int main for j 0 j數 if b j 1 k printf d n k 1的總數for j 0 j輸...

關於C二進位制平移問題

for int i len 1 i 0 i n 1 是通過迴圈將n的低位位元組的各位移到最低位上,第1次不移,n的最低位就在最低位,第2次迴圈移1位,第8次移7位,如此,每次迴圈體執行時,n的相應位都會出現在最低位上 倒序,所以i len 1迴圈 b i 01 n 0 這裡01也可以寫成1,就是用1...