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; 樓上的 好像還是不能解決浮點數的問題啊 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 十進位制是 這段可以解決二進位制轉為十進位制 但是不能實現浮點數的運算... 冰是沉默的水 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輸... 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...二進位制如何轉為十進位制 浮點數c,二進位制如何轉為十進位制 浮點數 c
c語言輸入n個二進位制數,輸出其中1的個數
關於C二進位制平移問題