유머천국 코하비닷컴
https://cohabe.com/sisa/4608724

중학교 과정에서 곱셈 코딩을 안배우는 이유


중학교 과정에서 곱셈 코딩을 안배우는 이유_1.jpg

요즘 CPU는 아예 곱셈, 나눗셈 계산기가 있다.

중학교 과정에서 곱셈 코딩을 안배우는 이유_2.jpg

근데 옛날 CPU, 특히 게이ㅁ보이에 쓰는 닌텐도의 cpu는 곱셈, 나눗셈 계산기가 없다.


그럼 어떻게 구현하냐고?



중학교 과정에서 곱셈 코딩을 안배우는 이유_3.jpg

중학교 과정에서 곱셈 코딩을 안배우는 이유_4.jpg

중학교 과정에서 곱셈 코딩을 안배우는 이유_5.jpg

중학교 과정에서 곱셈 코딩을 안배우는 이유_6.jpg

중학교 과정에서 곱셈 코딩을 안배우는 이유_7.jpg



원리는 쉽다. 곱셈은 덧셈의 반복임을 사용해서 여러번 덧셈하게 하면된다.


여기까지는 중학교 교육과정에서 배우는 이진수 계산법으로 이진수의 덧셈, 뺄셈을 배우고 이진수의 곱셈, 나눗셈은 안배운다.




중학교 과정에서 곱셈 코딩을 안배우는 이유_8.jpg

근데 큰 수를 곱한다면 어떻게 해야함?중학교 과정에서 곱셈 코딩을 안배우는 이유_9.jpg

중학교 과정에서 곱셈 코딩을 안배우는 이유_10.jpg

변수와 곱할 숫자변수를 따로만들고

중학교 과정에서 곱셈 코딩을 안배우는 이유_11.jpg


중학교 과정에서 곱셈 코딩을 안배우는 이유_12.jpg

곱할 숫자 변수를 이진법으로 치환, 8비트로 쪼개서 턴마다 2를 곱해주고 1이면 변수값을 더하고, 0이면 패스하는 식으로 계산한다.

중학교 과정에서 곱셈 코딩을 안배우는 이유_13.jpg

중학교 과정에서 곱셈 코딩을 안배우는 이유_14.jpg



아니 시발 방금 곱셈이 안된다며?


근데 2를 곱하는건 편법이 있다.


변수를 이진법으로 전환후, 왼쪽으로 한칸 보내면 자동으로 2가 곱해진 값이 나온다.



여기까지가 중학생 수준 내용이지만 아무도 안가르쳐주는 기본적인 이진법의 곱셈이다.


댓글
  • 아사히! 2025/05/22 01:05

    기본적인 알고리즘입니다

  • 아사히! 2025/05/22 01:05

    기본적인 알고리즘입니다

    (jKoT5D)

  • 쿠미로미 2025/05/22 01:05

    2진법 변환을 우선 익숙해져야할거 같다

    (jKoT5D)

  • (면정학) 2025/05/22 01:07

    으아앙 못읽겠어

    (jKoT5D)

  • 익명-zgxMzM3 2025/05/22 01:10

    아...하긴 왼쪽으로 민다는 건 실질적으로 10(2)를 곱해주는 거니까 2배가 되긴 하네...

    (jKoT5D)

(jKoT5D)