#include<stdio.h>
#include<math.h>
int main()
{
int a[8] = {}, b[8], c[8], i, j, N, n;
scanf("%d", &N);//接收一个数N
if (N < 0)//求出原码并放在数组a中
{
a[7] = 1;
}
n = abs(N);
for (i = 0; n != 0; i++)
{
a[i] = n % 2;
n = n / 2;
}
if (N > 0)//求反码并放在数组b中
{
for (i = 0; i < 8; i++)
{
b[i] = a[i];
}
}
else
{
for (i = 0; i < 8; i++)
{
if (a[i] == 0)
b[i] = 1;
else
b[i] = 0;
}
b[7] = 1;
}
for (i = 0; i < 8; i++)//求出补码并放在数组c
{
c[i] = b[i];
}
if (N < 0)
{
c[0]++;
for (i = 0; i < 7; i++)
{
if (c[i] == 2)
{
c[i] = 0;
c[i + 1] = c[i + 1] + 1;
}
}
}
printf("原码为:");
for (i = 7; i >= 0; i--)
{
printf("%d", a[i]);
}
printf("\n");
printf("反码为:");
for (i = 7; i >= 0; i--)
{
printf("%d", b[i]);
}
printf("\n");
printf("补码为:");
for (i = 7; i >= 0; i--)
{
printf("%d", c[i]);
}
return 0;
}