#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
你好,關於這部分,你可以參考我修改後的
#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<
system("PAUSE");
return 0;
}
2007-10-21 10:50:55 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋