【C語言】輸入一個整數,求它的原碼,反碼,補碼值
阿新 • • 發佈:2018-06-10
補碼 while src info idt IV com scan --
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int m,n,a[10],i=0,y[100],f[100],b[100],j,k; 6 printf("請輸入一個整數:"); 7 scanf("%d",&n); 8 m=abs(n); 9 while (m!=0) 10 { 11 a[i]=m%2; 12 m=m/2; 13 i=i+1; 14 } 15 if (n>=0) 16{ 17 for(j=0;j<i;j++) y[j]=a[j]; 18 if ((j+1)%8!=0) for(;(j+1)%8!=0;j++) y[j]=0; 19 y[j]=0; 20 for(k=0;k<=j;k++) 21 { 22 f[k]=y[k]; 23 b[k]=y[k]; 24 } 25 } 26 else 27 { 28 int w=0; 29 for(j=0;j<i;j++) y[j]=a[j];30 if ((j+1)%8!=0) for(;(j+1)%8!=0;j++) y[j]=0;y[j]=1; 31 for(k=0;k<j;k++) if(y[k]) f[k]=0;else f[k]=1;f[k]=1; 32 for( k=0;k<j;k++) {if (k==0)b[k]=f[k]+1;else b[k]=f[k]+w;if (b[k]==2){b[k]=0;w=1;}else w=0;}b[k]=1; 33 } 34 printf("原碼:");for(k=j;k>=0;k--)printf("%d",y[k]);printf("\n"); 35 printf("反碼:");for(k=j;k>=0;k--)printf("%d",f[k]);printf("\n"); 36 printf("補碼:");for(k=j;k>=0;k--)printf("%d",b[k]);printf("\n"); 37 }
【C語言】輸入一個整數,求它的原碼,反碼,補碼值