요즘 CPU는 아예 곱셈, 나눗셈 계산기가 있다.
근데 옛날 CPU, 특히 게이ㅁ보이에 쓰는 닌텐도의 cpu는 곱셈, 나눗셈 계산기가 없다.
그럼 어떻게 구현하냐고?
원리는 쉽다. 곱셈은 덧셈의 반복임을 사용해서 여러번 덧셈하게 하면된다.
여기까지는 중학교 교육과정에서 배우는 이진수 계산법으로 이진수의 덧셈, 뺄셈을 배우고 이진수의 곱셈, 나눗셈은 안배운다.
근데 큰 수를 곱한다면 어떻게 해야함?
변수와 곱할 숫자변수를 따로만들고
곱할 숫자 변수를 이진법으로 치환, 8비트로 쪼개서 턴마다 2를 곱해주고 1이면 변수값을 더하고, 0이면 패스하는 식으로 계산한다.
아니 시발 방금 곱셈이 안된다며?
근데 2를 곱하는건 편법이 있다.
변수를 이진법으로 전환후, 왼쪽으로 한칸 보내면 자동으로 2가 곱해진 값이 나온다.
여기까지가 중학생 수준 내용이지만 아무도 안가르쳐주는 기본적인 이진법의 곱셈이다.
기본적인 알고리즘입니다
기본적인 알고리즘입니다
2진법 변환을 우선 익숙해져야할거 같다
으아앙 못읽겠어
아...하긴 왼쪽으로 민다는 건 실질적으로 10(2)를 곱해주는 거니까 2배가 되긴 하네...