if(A[i]==98) //A[i]=1+1=0 올림 발동
{
A[i]='0';
j=i-1; //올림을 하기 위한 임시 변수
while(1) //이 와일문이 위로 올라가야 할거 같다 다 끝난 후 수정하자 그럼 if문이 반 정도 줄을거다.
{
if(j!=-1) // j=i-1이다 고로 -1은 최소 자리를 초과했다는 소리다
A[j]=(int)A[j]+49; //하지만 아니므로 더한다 a[j]+1
else if(j==-1) //j=-1즉 다음 자리는 마지막을 초과했다는 소리
{
*C='1'; //오버플로 적용
A[i]='0'; //1+1=0
break; //와일문을 끝내고 바로 아래로 내려간다.
}
if(word[i]==98) //A[i]=1+1=0 올림 발동
{
word[i]='0';
j=i-1; //올림을 하기 위한 임시 변수
while(1) //이 와일문이 위로 올라가야 할거 같다 다 끝난 후 수정하자 그럼 if문이 반 정도 줄을거다.
{
if(j!=-1) // j=i-1이다 고로 -1은 최소 자리를 초과했다는 소리다
word[j]=(int)word[j]+49; //하지만 아니므로 더한다 a[j]+1
else if(j==-1) //j=-1즉 다음 자리는 마지막을 초과했다는 소리
{
word[i]='0'; //1+1=0
break; //와일문을 끝내고 바로 아래로 내려간다.
}
if(word[i]==98) //A[i]=1+1=0 올림 발동
{
word[i]='0';
j=i-1; //올림을 하기 위한 임시 변수
while(1) //이 와일문이 위로 올라가야 할거 같다 다 끝난 후 수정하자 그럼 if문이 반 정도 줄을거다.
{
if(j!=-1) // j=i-1이다 고로 -1은 최소 자리를 초과했다는 소리다
word[j]=(int)word[j]+49; //하지만 아니므로 더한다 a[j]+1
else if(j==-1) //j=-1즉 다음 자리는 마지막을 초과했다는 소리
{
word[i]='0'; //1+1=0
break; //와일문을 끝내고 바로 아래로 내려간다.
}
process2(A, M, bit, Q, CNT, M, A);
printf("%2d %s %s %c %s A=A+M\n",CNT, A, Q, Q1, M);
Arith_Rightshift(&Q1, A, Q, &CNT, bit, M);
}
else if(Q[bit]=='1' && Q1=='0')
{
process2(A, UNM, bit, Q, CNT, M, A);
printf("%2d %s %s %c %s A=A-M\n",CNT, A, Q, Q1, M);
Arith_Rightshift(&Q1, A, Q, &CNT, bit, M);
}
else
{
Arith_Rightshift(&Q1, A, Q, &CNT, bit, M);
}
}
printf("\n결과: %s%s = ", A,Q);
if(A[0]=='1')
{
unload(A, Q, bit, flag);
result(A, Q, bit, bit, -1);
}
else
result(A, Q, bit, bit, 1);
}
void multiplication3(int multiplicand, int multiplier)
{
int i, CNT=0, max1, max2, bit;
char A[100], M[100], Q[100], UNM[100];
Leftshift(A, Q, CNT, max2, bit, M);
printf("%2d %s %s %s Left shift\n", CNT, A, Q, M);
process2(A, UNM, bit, Q, CNT, M, A);
printf("%2d %s %s %s A=A-M\n",CNT, A, Q, M);
if(A[0]=='1')
{
Q[max2]=='0';
process2(A, M, bit, Q, CNT, M, A);
printf("%2d %s %s %s Q0=0 & A=A+M\n",CNT, A, Q, M);
CNT--;
}
else
{
Q[max2]='1';
printf("%2d %s %s %s Q0=1\n",CNT, A, Q, M);
CNT--;
}
}
printf("%2d %s %s %s \n",CNT, A, Q, M);
result2(A, Q, bit, max2, 1);
}
void multiplication4(int multiplicand, int multiplier)
{
int i, CNT=0, max1, max2, bit, temp, boo=0;
char A[100], M[100], Q[100], UNM[100], X[100], X2[100];
while(CNT!=0)
{
Leftshift(A, Q, CNT, bit, bit, M);
printf("%2d %s %s %s %s Left shift\n", CNT, A,X, Q, M);
if(A[0]==M[0])
{
process3(A, UNM, bit, Q, CNT, M, X);
printf("%2d %s %s %s %s X=A-M\n",CNT, A, X, Q, M);
}
else
{
process3(A, M, bit, Q, CNT, M, X);
printf("%2d %s %s %s %s X=A+M\n",CNT, A, X, Q, M);
}
if(A[0]==X[0])
{
Q[bit]='1';
strcpy(A, X);
printf("%2d %s %s %s %s Q0=1 & A=X\n",CNT, A, X, Q, M);
}
else
{
if((strcmp(X, X2)==0))
{
Q[bit]='1';
strcpy(A, X);
printf("%2d %s %s %s %s Q0=1 & A=X\n",CNT, A, X, Q, M);
}
else
{
Q[bit]='0';
printf("%2d %s %s %s %s Q0=0\n",CNT, A, X, Q, M);
}
}
CNT--;
}
printf("%2d %s %s %s %s \n",CNT, A, X, Q, M);
result2(A, Q, bit, bit, boo);
}
int main()
{// 피승수 승수
int multiplicand, multiplier, CNT=0;
int multiplicand2, multiplier2;
int multiplicand3, multiplier3;
int multiplicand4, multiplier4;
<code>. 다른 곳에서 구한 예시입니다.(곱셈,나눗셈)
#include
#include
int change(int number, char word[])//평범한 2진수 변화
{
int i=0, j=0;
for (i=0; number >0; i++)
{
word[i]=(number % 2)+48;
number/=2;
}
return i-1;
}
void change2(char word[],int max)//자리 바꾸기
{
int i=max+1, j=max;
char temp;
for(j=0; j < i/2; j++)
{
temp=word[j];
word[j]=word[i-j-1];
word[i-j-1]=temp;
}
}
void change3(int number, char word[], int max) //1의 보수 변화
{
int i=0, j=0;
for(i=0; i!=max; i++)
{
if (word[i]=='0')
word[i]='1';
else if (word[i]=='1')
word[i]='0';
}
word[0]=(int)word[0]+49;
if (word[0]==98)
{
word[0]='0';
j=j+1;
while(1)
{
word[j]=(int)word[j]+49;
if(word[j]==98)
{
word[j]='0';
j++;
continue;
}
else if(word[j]==49)
break;
}
}
else
word[0]='1';
word[max]='1';
}
void change4(char M[], int max1, char Q[], int max2, int bit, char UNM[], char A[])
{
int i=0;
if (max1+1!=bit)
{
M[bit+1]='\0';
UNM[bit+1]='\0';
}
else
{
M[max1+2]='\0';
UNM[max1+2]='\0';
}
if(max2+1 != bit)
{
Q[bit+1]='\0';
}
else
Q[max2+2]='\0';
for(i=0; i!=bit+1; i++)
A[i]='0';
A[i]='\0';
}
void set(char A[], int max, char M[], char Q[], int max1, int max2)
{
int i=0 , j=0;
for(i=0; max+1!=i ;i++)
A[i]=48;
A[i]='\0';
M[max1+1]='\0';
Q[max2+1]='\0';
}
void firstset(char M[], char Q[])
{
int i=0;
for(i=0; i!=99; i++)
{
M[i]='0';
Q[i]='0';
}
M[i]='\0';
Q[i]='\0';
}
void process1(char A[], char M[], char *C, int max, int max2, char Q[], int *CNT)
{
int i=0, j=0,d=0;
for(i=max ; i+1 !=0 && d!=max2+1; i--, d++)
{
A[i]=(int)A[i]+(int)M[max2-d]; //A[i]의 자리 + M[i]
if(A[i]==98) //A[i]=1+1=0 올림 발동
{
A[i]='0';
j=i-1; //올림을 하기 위한 임시 변수
while(1) //이 와일문이 위로 올라가야 할거 같다 다 끝난 후 수정하자 그럼 if문이 반 정도 줄을거다.
{
if(j!=-1) // j=i-1이다 고로 -1은 최소 자리를 초과했다는 소리다
A[j]=(int)A[j]+49; //하지만 아니므로 더한다 a[j]+1
else if(j==-1) //j=-1즉 다음 자리는 마지막을 초과했다는 소리
{
*C='1'; //오버플로 적용
A[i]='0'; //1+1=0
break; //와일문을 끝내고 바로 아래로 내려간다.
}
if(A[j]==98) //98= 1+1=0 즉 올림
{
A[j]='0';
j--;
continue;
}
else if(A[j]==97) //올린 후 1 오름 없음
{
A[j]='1';
break;
}
break;
}
}
else if(A[i]==97)
A[i]='1';
else
A[i]='0';
}
printf("%2d %c %s %s %s A=A+M\n",*CNT, *C, A, Q, M);
}
void process2(char A[], char M[], int max, char Q[], int CNT, char M2[], char word[])
{
int i=0, j=0, d=0;
for(i=max ; i+1 !=0 && d!=max+1; i--, d++)
{
word[i]=(int)A[i]+(int)M[max-d]; //A[i]의 자리 + M[i]
if(word[i]==98) //A[i]=1+1=0 올림 발동
{
word[i]='0';
j=i-1; //올림을 하기 위한 임시 변수
while(1) //이 와일문이 위로 올라가야 할거 같다 다 끝난 후 수정하자 그럼 if문이 반 정도 줄을거다.
{
if(j!=-1) // j=i-1이다 고로 -1은 최소 자리를 초과했다는 소리다
word[j]=(int)word[j]+49; //하지만 아니므로 더한다 a[j]+1
else if(j==-1) //j=-1즉 다음 자리는 마지막을 초과했다는 소리
{
word[i]='0'; //1+1=0
break; //와일문을 끝내고 바로 아래로 내려간다.
}
if(word[j]==98) //98= 1+1=0 즉 올림
{
word[j]='0';
j--;
continue;
}
else if(word[j]==97) //올린 후 1 오름 없음
{
word[j]='1';
break;
}
break;
}
}
else if(word[i]==97)
word[i]='1';
else
word[i]='0';
}
}
void process3(char A[], char M[], int max, char Q[], int CNT, char M2[], char word2[])
{
int i=0, j=0, d=0;
char word[100];
strcpy(word, A);
for(i=max ; i+1 !=0 && d!=max+1; i--, d++)
{
word[i]=(int)word[i]+(int)M[max-d]; //A[i]의 자리 + M[i]
if(word[i]==98) //A[i]=1+1=0 올림 발동
{
word[i]='0';
j=i-1; //올림을 하기 위한 임시 변수
while(1) //이 와일문이 위로 올라가야 할거 같다 다 끝난 후 수정하자 그럼 if문이 반 정도 줄을거다.
{
if(j!=-1) // j=i-1이다 고로 -1은 최소 자리를 초과했다는 소리다
word[j]=(int)word[j]+49; //하지만 아니므로 더한다 a[j]+1
else if(j==-1) //j=-1즉 다음 자리는 마지막을 초과했다는 소리
{
word[i]='0'; //1+1=0
break; //와일문을 끝내고 바로 아래로 내려간다.
}
if(word[j]==98) //98= 1+1=0 즉 올림
{
word[j]='0';
j--;
continue;
}
else if(word[j]==97) //올린 후 1 오름 없음
{
word[j]='1';
break;
}
break;
}
}
else if(word[i]==97)
word[i]='1';
else
word[i]='0';
}
strcpy(word2, word);
}
void Rightshift(char *C, char A[], char Q[], int *CNT, int max1, int max2, char M[])
{
int i=0;
for(i=max1; i!=0; i--)
{
Q[i]=Q[i-1];
}
Q[0]=A[max2];
for(i=max2; i!=0; i--)
{
A[i]=A[i-1];
}
A[0]=*C;
*C='0';
(*CNT)--;
printf("%2d %c %s %s %s Right Shift & CNT-1\n",*CNT, *C, A, Q, M);
}
void Arith_Rightshift(char *Q1, char A[], char Q[], int *CNT, int bit, char M[])
{
int i=0;
*Q1=Q[bit];
for(i=bit; i!=0; i--)
{
Q[i]=Q[i-1];
}
Q[0]=A[bit];
for(i=bit; i!=0; i--)
{
A[i]=A[i-1];
}
(*CNT)--;
printf("%2d %s %s %c %s ArithmeticRight Shift & CNT-1\n",*CNT, A, Q, *Q1, M);
}
void Leftshift(char A[], char Q[], int CNT, int max2, int bit, char M[])
{
int i=0;
for(i=0; i!=bit; i++)
{
A[i]=A[i+1];
}
A[i]=Q[0];
for(i=0; i!=max2; i++)
{
Q[i]=Q[i+1];
}
Q[i]='0';
}
void unload(char word2[], char word[], int max, int flag)
{
int i=0, j=max;
word[max]=(int)word[max]+49;
if (word[max]==97)
{
word[max]='1';
j=j-1;
while(1)
{
word[j]=(int)word[j]+49;
if(word[j]==97)
{
word[j]='1';
if(j==0)
{
if(flag==1)
return;
else
{
flag=1;
unload(word2, word2, max, flag);
break;
}
}
else
{
j--;
continue;
}
}
else if(word[j]==98)
{
word[j]='0';
break;
}
}
}
else
{
word[max]='0';
if(flag==1)
return;
}
for(i=0; i!=max+1; i++)
{
if (word[i]=='0')
word[i]='1';
else if (word[i]=='1')
word[i]='0';
}
for(i=0; i!=max+1; i++)
{
if (word2[i]=='0')
word2[i]='1';
else if (word2[i]=='1')
word2[i]='0';
}
}
void result(char A[], char Q[], int bit, int max2, int boo)
{
int i=0, number=1, result=0;
for(i=max2; i+1!=0; i--)
{
if(Q[i]=='1')
{
result=result+number;
number=number*2;
}
else
number=number*2;
}
for(i=bit; i+1!=0; i--)
{
if(A[i]=='1')
{
result=result+number;
number=number*2;
}
else
number=number*2;
}
printf("%d",result);
}
void result2(char A[], char Q[], int bit, int max2, int boo)
{
int i=0, number=1, result=0, quotient=0;
for(i=max2; i+1!=0; i--)
{
if(Q[i]=='1')
{
quotient= quotient+number;
number=number*2;
}
else
number=number*2;
}
number=1;
for(i=bit; i+1!=0; i--)
{
if(A[i]=='1')
{
result=result+number;
number=number*2;
}
else
number=number*2;
}
printf("\n결과: 몫=%s=%d 나머지=%s=%d",Q, quotient*boo, A, result);
}
void multiplication(int multiplicand, int multiplier)
{
int i, CNT=0, max1, max2, bit;
char C='0', A[10000], M[10000], Q[10000];
max1=change(multiplicand, M);
max2=change(multiplier, Q);
if(max1 >= max2)
bit=max1;
else
bit=max2;
CNT=max2+1;
set(A, bit, M, Q, max1, max2);
change2(M, max1);
change2(Q, max2);
printf("CNT C");
for(i=0; bit/2>=i;i++)
printf(" ");
printf("A");
for(i=0; bit/2>=i;i++)
printf(" ");
for(i=0; max2/2>=i;i++)
printf(" ");
printf("Q");
for(i=0; max2/2>=i;i++)
printf(" ");
for(i=0; max1/2>=i;i++)
printf(" ");
printf("M");
for(i=0; max1/2>=i;i++)
printf(" ");
printf(" 동작 상태\n");
printf("%2d %c %s %s %s\n",CNT, C, A, Q, M);
while(CNT!=0)
{
if(Q[max2]=='1')
{
process1(A, M, &C, bit, max1, Q, &CNT);
Rightshift(&C, A, Q, &CNT, max2, bit, M);
}
else
Rightshift(&C, A, Q, &CNT, max2, bit, M);
}
printf("\n결과: %s%s = ", A,Q);
result(A, Q, bit, max2, 1);
}
void multiplication2(int multiplicand, int multiplier)
{
char A[100], Q[100], Q1='0', M[100], UNM[100];
int max1, max2, bit, CNT;
int temp, i=0, flag=0 ;
firstset(M, Q);
if(multiplicand < 0) //M의 변화
{
temp=multiplicand*-1;
max1=change(temp, M);
strcpy(UNM, M); //UNM=-M
}
else
{
temp=multiplicand;
max1=change(temp, M);
}
if(multiplier < 0) //Q의 변화
{
temp=multiplier * -1;
max2=change(temp, Q);
}
else
{
temp=multiplier;
max2=change(temp, Q);
}
if (max1 > max2) //여기서 일단 비트 수를 계산한다.
bit=max1+1;
else
bit=max2+1;
if(multiplicand < 0) //최대 비트수가 계산되었으면 다시 자리마다 비트를 넣어준다.
{ //예를들어 111(5비트)->11001이 된다 그전에는 1001만 되었다.
temp=multiplicand*-1;
change3(temp, M, bit);
}
else
{
strcpy(UNM, M); //M의 0보다 클 때 이므로 UNM을 여기서 해줌
temp=multiplicand;
change3(temp, UNM, bit);
}
CNT=bit+1;
if(multiplier < 0)
{
temp=multiplier*-1;
change3(temp, Q, bit);
}
change4(M, max1, Q, max2, bit, UNM, A);
change2(M, bit);
change2(Q, bit);
change2(UNM, bit);
printf("CNT");
for(i=0; bit/2>=i;i++)
printf(" ");
printf("A");
for(i=0; bit/2>i;i++)
printf(" ");
for(i=0; bit/2>i;i++)
printf(" ");
printf("Q");
for(i=0; bit/2>i;i++)
printf(" ");
printf(" Q1 ");
for(i=0; bit/2>i;i++)
printf(" ");
printf("M");
for(i=0; max1/2>=i;i++)
printf(" ");
printf(" 동작 상태\n");
printf("%2d %s %s %c %s\n",CNT, A, Q,Q1, M);
while(CNT!=0)
{
if(Q[bit]=='0' && Q1=='1')
{
process2(A, M, bit, Q, CNT, M, A);
printf("%2d %s %s %c %s A=A+M\n",CNT, A, Q, Q1, M);
Arith_Rightshift(&Q1, A, Q, &CNT, bit, M);
}
else if(Q[bit]=='1' && Q1=='0')
{
process2(A, UNM, bit, Q, CNT, M, A);
printf("%2d %s %s %c %s A=A-M\n",CNT, A, Q, Q1, M);
Arith_Rightshift(&Q1, A, Q, &CNT, bit, M);
}
else
{
Arith_Rightshift(&Q1, A, Q, &CNT, bit, M);
}
}
printf("\n결과: %s%s = ", A,Q);
if(A[0]=='1')
{
unload(A, Q, bit, flag);
result(A, Q, bit, bit, -1);
}
else
result(A, Q, bit, bit, 1);
}
void multiplication3(int multiplicand, int multiplier)
{
int i, CNT=0, max1, max2, bit;
char A[100], M[100], Q[100], UNM[100];
firstset(M, Q);
max1=change(multiplicand, M);
max2=change(multiplier, Q);
max1++;
CNT=max2+1;
if(max1 > max2)
bit=max1;
else
bit=max2;
max1=bit;
strcpy(UNM, M);
change3(multiplicand, UNM, bit);
set(A, bit, M, Q, max1, max2);
change2(M, max1);
change2(Q, max2);
change2(UNM, max1);
change4(M, max1, Q, max2, bit, UNM, A);
printf("CNT ");
for(i=0; bit/2>=i;i++)
printf(" ");
printf("A");
for(i=0; bit/2>=i;i++)
printf(" ");
for(i=0; max2/2>=i;i++)
printf(" ");
printf("Q");
for(i=0; max2/2>=i;i++)
printf(" ");
for(i=0; max1/2>=i;i++)
printf(" ");
printf("M");
for(i=0; max1/2>=i;i++)
printf(" ");
printf(" 동작 상태\n");
printf("%2d %s %s %s\n",CNT, A, Q, M);
while(CNT!=0)
{
Leftshift(A, Q, CNT, max2, bit, M);
printf("%2d %s %s %s Left shift\n", CNT, A, Q, M);
process2(A, UNM, bit, Q, CNT, M, A);
printf("%2d %s %s %s A=A-M\n",CNT, A, Q, M);
if(A[0]=='1')
{
Q[max2]=='0';
process2(A, M, bit, Q, CNT, M, A);
printf("%2d %s %s %s Q0=0 & A=A+M\n",CNT, A, Q, M);
CNT--;
}
else
{
Q[max2]='1';
printf("%2d %s %s %s Q0=1\n",CNT, A, Q, M);
CNT--;
}
}
printf("%2d %s %s %s \n",CNT, A, Q, M);
result2(A, Q, bit, max2, 1);
}
void multiplication4(int multiplicand, int multiplier)
{
int i, CNT=0, max1, max2, bit, temp, boo=0;
char A[100], M[100], Q[100], UNM[100], X[100], X2[100];
firstset(M, Q);
if(multiplicand < 0) //M의 변화
{
temp=multiplicand*-1;
max1=change(temp, M);
strcpy(UNM, M); //UNM=-M
}
else
{
temp=multiplicand;
max1=change(temp, M);
}
if(multiplier < 0) //Q의 변화
{
temp=multiplier * -1;
max2=change(temp, Q);
}
else
{
temp=multiplier;
max2=change(temp, Q);
}
if (max1 > max2) //여기서 일단 비트 수를 계산한다.
bit=max1+1;
else
bit=max2+1;
if(multiplicand < 0) //최대 비트수가 계산되었으면 다시 자리마다 비트를 넣어준다.
{ //예를들어 111(5비트)->11001이 된다 그전에는 1001만 되었다.
temp=multiplicand*-1;
change3(temp, M, bit);
}
else
{
strcpy(UNM, M); //M의 0보다 클 때 이므로 UNM을 여기서 해줌
temp=multiplicand;
change3(temp, UNM, bit);
}
CNT=bit+1;
if(multiplier < 0)
{
temp=multiplier*-1;
change3(temp, Q, bit);
}
change4(M, max1, Q, max2, bit, UNM, A);
change2(M, bit);
change2(Q, bit);
change2(UNM, bit);
strcpy(X, A);
strcpy(X2, A);
if(M[0]==Q[0])
boo=1;
else
boo=-1;
printf("CNT");
for(i=0; bit/2>=i;i++)
printf(" ");
printf("A");
for(i=0; bit/2>=i;i++)
printf(" ");
for(i=0; bit/2>i;i++)
printf(" ");
printf("X");
for(i=0; bit/2>=i;i++)
printf(" ");
for(i=0; bit/2>=i;i++)
printf(" ");
printf("Q");
for(i=0; bit/2>=i;i++)
printf(" ");
for(i=0; bit/2>=i;i++)
printf(" ");
printf("M");
for(i=0; max1/2>=i;i++)
printf(" ");
printf(" 동작 상태\n");
printf("%2d %s %s %s %s\n",CNT, A,X, Q, M);
while(CNT!=0)
{
Leftshift(A, Q, CNT, bit, bit, M);
printf("%2d %s %s %s %s Left shift\n", CNT, A,X, Q, M);
if(A[0]==M[0])
{
process3(A, UNM, bit, Q, CNT, M, X);
printf("%2d %s %s %s %s X=A-M\n",CNT, A, X, Q, M);
}
else
{
process3(A, M, bit, Q, CNT, M, X);
printf("%2d %s %s %s %s X=A+M\n",CNT, A, X, Q, M);
}
if(A[0]==X[0])
{
Q[bit]='1';
strcpy(A, X);
printf("%2d %s %s %s %s Q0=1 & A=X\n",CNT, A, X, Q, M);
}
else
{
if((strcmp(X, X2)==0))
{
Q[bit]='1';
strcpy(A, X);
printf("%2d %s %s %s %s Q0=1 & A=X\n",CNT, A, X, Q, M);
}
else
{
Q[bit]='0';
printf("%2d %s %s %s %s Q0=0\n",CNT, A, X, Q, M);
}
}
CNT--;
}
printf("%2d %s %s %s %s \n",CNT, A, X, Q, M);
result2(A, Q, bit, bit, boo);
}
int main()
{// 피승수 승수
int multiplicand, multiplier, CNT=0;
int multiplicand2, multiplier2;
int multiplicand3, multiplier3;
int multiplicand4, multiplier4;
printf("피승수 : ");
scanf("%d", &multiplier);
printf("승수 : ");
scanf("%d", &multiplicand);
printf("부호 있는 피승수 : ");
scanf("%d", &multiplier2);
printf("부호 있는 승수 : ");
scanf("%d", &multiplicand2);
printf("피젯수 : ");
scanf("%d", &multiplier3);
printf("젯수 : ");
scanf("%d", &multiplicand3);
printf("부호 있는 피젯수 : ");
scanf("%d", &multiplier4);
printf("젯수 : ");
scanf("%d", &multiplicand4);
printf("부호없는 2진수의 곱셈 연산\n\n");
multiplication(multiplicand, multiplier);
printf("\n\n부호있는 2진수의 곱셈 연산\n\n");
multiplication2(multiplicand2, multiplier2);
printf("\n\n부호없는 2진수의 나눗셈 연산\n\n");
multiplication3(multiplicand3, multiplier3);
printf("\n\n부호있는 2진수의 나눗셈 연산\n\n");
multiplication4(multiplicand4, multiplier4);
getchar();
getchar();
}
혹시 덧셈이랑 뺄셈 코딩 관련해서 작성해주실 수 있으신지요
댓글 달기