English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#include
#include
using namespace std;
int main()
{
unsigned long long int i=1 ,a;
cout<<"數值=";
cin>>a;
i=i<<63;
for(i;i>1;i=i>>1)
{if(a&i) cout<<"1";else cout<<"0";
i=i>>1; }
system("pause");
}

題目是 假如我輸入10 會輸出00000000000000000000000001010
64位元的2進位 請問 = = 我哪裡寫錯了?
如果把for改成WHILE 我寫的出來 for就是寫不出來 !! = =!

2007-10-21 10:19:29 · 2 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

cout<<((a&i)>>shift);
i=i>>1;
shift--;


這段我不大懂耶 可以解釋嗎?

2007-10-21 11:14:18 · update #1

還有 可以用FOR來寫看看嗎?

2007-10-21 11:19:02 · update #2

謝謝您!!!!!!!!!!HAHA

2007-10-21 11:19:15 · update #3

2 個解答

你好,關於這部分,你可以參考我修改後的

#include

using namespace std;
int main(){
unsigned long long int i=1 ,a;
int shift=63;
cout<<"數值=";
cin>>a;
i=i<<63;
while(i){
cout<<((a&i)>>shift);
i=i>>1;
shift--;
}
cin.get(); cin.get();
}




2007-10-21 17:30:04 補充:
for的版本

#include

using namespace std;
int main(){
unsigned long long int i=1 ,a;
int shift=63;

cout<<"數值=";
cin>>a;

for(i=i<<63;i>0;i>>=1){
cout<<((a&i)>>shift);
shift--;
}
cin.get(); cin.get();
}

2007-10-21 17:31:31 補充:
include後面的iostream因為知識+的關係所以沒出現
你自己加吧

加shift只是因為我要顯示1位數就好

2007-10-21 10:49:37 · answer #1 · answered by  Joybo 5 · 0 0

#include
#include
#include
using namespace std;
int main(int argc, char** argv){
//=====START=====//
char str[32767];
cout< //=====END=====//
system("PAUSE");
return 0;
}

2007-10-21 10:50:55 · answer #2 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers