#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");
}

  

posted on 2019-03-20 10:39  寒舟独饮  阅读(538)  评论(0)    收藏  举报