#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");
}
이진수 사칙연산 만드려는데 일단 이진수로 바꾸는것조차 안되네요 ㅠㅠ
음수 받으면 보수로 변환하려는데 어디가 틀린건가요..ㅠㅠ
다틀렷읍니다 갈아엎으세요
그럼 음수받으면 이진수 변환 어떤식으로 짤까요..