#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//100010010101010
//100000000000000
//100000000000000
//000010010101010
//100000000000000
//000000000000000
void ycode(int num, char stry[33])
{
unsigned int data = 1 << 31;//左边移动31位;
if (num < 0)
{
//1111
//0000
//0001
//1110
num = ~num + 1; //求出反码;
num = num | data; //处理符号位;
}
int i;
for (i = 1; i <= 32; i++)
{
if (num & data)
{
strb[i-1] = \'1\';
}
else
{
strb[i-1] = \'0\';
}
num <<= 1;
}
}
void fcode(int num, char strf[33])
{
unsigned int data = 1 << 31;//左边移动31位;
if (num < 0)
{
//1111
//1110
num = num -1;//求出反码;
}
int i;
for (i = 1; i <= 32; i++)
{
if (num & data)
{
strb[i-1] = \'1\';
}
else
{
strb[i-1] = \'0\';
}
num <<= 1;
}
}
void bcode(int num, char strb[33])
{
unsigned int data = 1 << 31;//左边移动31位;
int i;
for (i = 1; i <= 32; i++)
{
if (num & data)
{
strb[i-1] = \'1\';
}
else
{
strb[i-1] = \'0\';
}
num <<= 1;
}
}
int main(void)
{
int num;
char stry[33] = {0};
char strf[33] = {0};
char strb[33] = {0};
scanf("%d",&num);
bcode(num,strb);
printf("%s",strb);
fcode(num,strf);
printf("%s",strf);
bcode(num,stfy);
printf("%s",stry);
system("pause");
}