首页 > 编程语言 > 详细

【C语言】输入一个整数,求它的原码,反码,补码值

时间:2018-06-09 23:40:17      阅读:591      评论:0      收藏:0      [点我收藏+]
 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语言】输入一个整数,求它的原码,反码,补码值

原文:https://www.cnblogs.com/ieybl/p/9161622.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!