[問題] 十進位轉二進位

看板C_and_CPP (C/C++)作者 (脆歐德)時間16年前 (2009/03/22 17:19), 編輯推噓6(607)
留言13則, 4人參與, 最新討論串1/5 (看更多)
我寫出來是反過來的 要怎麼樣才可以把它從左到右顯示 #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int a,i; cout<<"請輸入一整數 : "; cin>>a; while(i=a) { if(a%2==1) cout<<1; else {cout<<0;} i=a/2; a=i; } system("PAUSE"); return EXIT_SUCCESS; } 這是我寫的 想了好久了 囧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.86.161

03/22 17:30, , 1F
判定大小於 0 後 shift ?
03/22 17:30, 1F

03/22 17:33, , 2F
先除以小於該數,最大2的次方..ex: 輸入9 先除8.再取餘數
03/22 17:33, 2F

03/22 17:36, , 3F
再來是9/4 取餘數.再來是9/2...9/1...
03/22 17:36, 3F

03/22 17:50, , 4F
unsigned int a = 0, mask = 0x80000000;
03/22 17:50, 4F

03/22 17:50, , 5F
cout << "請輸入一整數 : ";
03/22 17:50, 5F

03/22 17:50, , 6F
cin >> a;
03/22 17:50, 6F

03/22 17:50, , 7F
for (int i = 0;i < 32;++i, mask >>= 1) {
03/22 17:50, 7F

03/22 17:50, , 8F
cout << (0 != (a&mask) ? 1 : 0);
03/22 17:50, 8F

03/22 17:50, , 9F
}
03/22 17:50, 9F

03/22 17:50, , 10F
cout << endl;
03/22 17:50, 10F

03/22 17:56, , 11F
如果只用我程式的運算式子 還可以怎麼修改
03/22 17:56, 11F

03/22 18:59, , 12F
for( int i=0; i<32; ++i ) { cout << ( a<0 ); a<<=1; }
03/22 18:59, 12F

03/22 20:28, , 13F
XDDD 樓上好狠 用符號位元 XDDD
03/22 20:28, 13F
文章代碼(AID): #19nWAia9 (C_and_CPP)
文章代碼(AID): #19nWAia9 (C_and_CPP)