#include <stdio.h>
#include <string.h>

void DTB(int number, char* binary);

void main(void)
{

 int d1=0;
 int d2=0;
 char b1[32]="";
 char b2[32]="";


 printf("첫번째 피연산자를 입력하세요");
 scanf_s("%d",&d1,sizeof(d1));
 printf("두번째 피연산자를 입력하세요");
 scanf_s("%d",&d2,sizeof(d2));

 DTB(d1,b1);
 DTB(d2,b2);
}


void DTB(int number, char* binary)
{
 int i;
 int count=0;

 printf("%d\t",number);


 if(number<0)
 {
  number=-number,count=1;
 }


 for(i=0;i<32;i++)
 {
  if(number==0)
  {
   break;
  }


  if (number%2 !=0)

  {
  binary[i]='1';
  }
  else
  {
  binary[i]='0';
  }
  number /= 2;
 }

 for(i;i<32;i++)
 {
  binary[i]='0';
 }
 binary[i]='0';

 if(count==1)
 {
  for(i=0;i<32;i++)
  {
   if(binary[i]=='0')
    binary[i]='1';
   else
    binary[i]='0';
  }
  binary[0]+='1';

  for(i=0;i<32;i++)
   {
   if(binary[i]=='2')
   {
    binary[i]='0';
    binary[i+1]+='1';
   }
   }
 }

 _strrev(binary);

 for( i=0;i<33;i++)
 {
  if(i!=0&&i%8==0)
  {
   printf("");
  }
  printf("%d",binary[i]);
 }
 printf("(2)\n");
}


이진수 사칙연산 만드려는데 일단 이진수로 바꾸는것조차 안되네요 ㅠㅠ

음수 받으면 보수로 변환하려는데 어디가 틀린건가요..ㅠㅠ