본문 바로가기
Programming/C

[C] 이진수의 곱셈

by graygreat 2017. 4. 3.
728x90
반응형

※ 이진수를 십진수로 바꿔서 계산하는 것이 아니라 이진수 그자체를 곱셈으로 계산


#include<stdio.h> int main() { int A[4] = { 0, }; int B[4] = { 0, }; int C[8] = { 0, }; // 결과값을 위한 배열 C 초기화 int i, j; printf("Input A : "); for (i = 3; i >= 0; i--) // 이진수를 배열 A에 입력 scanf_s("%d", &A[i]); printf("Input B : "); // 이진수를 배열 B에 입력 for (i = 3; i >= 0; i--) scanf_s("%d", &B[i]); for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { C[j + i] += (A[j] * B[i]); if (C[j + i] >= 2) { // 결과값 배열 C의 값이 2보다 크다면 앞의 자리로 1 넘겨줌 C[j + i] -= 2; C[j + i + 1] += 1; } } } printf("A * B = "); for (i = 7; i >= 0; i--) // 결과값 배열 C 출력 printf("%d ", C[i]); printf("\n"); }



반응형

댓글