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

  

分类:

技术点:

相关文章:

  • 2022-02-09
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-11-19
  • 2021-11-19
  • 2021-11-19
猜你喜欢
  • 2021-11-02
  • 2021-08-21
  • 2021-11-19
  • 2021-11-19
  • 2021-11-19
  • 2021-12-20
相关资源
相似解决方案