精華區beta NTUE-CS99 關於我們 聯絡資訊
正確顯示位數 ( 由高位輸出至個位 ) 負數會數 2 補數 此版本會使用老師所說以後會交到的陣列,程式較為複雜,僅供參考 #include<iostream> using namespace std; int main(){ int i=0,j,a[99]; cout<<"請輸入一個10進位整數\n"; cin>>i; if(i==0){ // 等於零 或 非整數 當作 0 j=1; a[0]=0; }else if(i>0){ // 正整數 j=0; for(i;i>0;i/=2){ a[j]=i%2; j++; } }else{ // 負整數 j=0; for(i=-i;i>0;i/=2){ a[j]=(i%2)?0:1; // 取 1 補數 j++; } a[0]+=1; for(i=0;i<j;i++){ // 取 2 補數 if(a[i]>1){ a[i]-=2; a[i+1]+=1; } } cout<<"( 負數的二進位第一位為正負符號 )\n1"; } for(i=j-1;i>=0;i--) cout<<a[i]; // 由高位輸出至個位 cout<<endl; system("pause"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.240.186.34