정확하게는 AND, OR , NOT , XOR 만 이용해서 이진수 더하는 알고리즘을 만들려는데
내가 생각한거는
x,y가 같은 bit size인 이진수일때
더하기 (x,y) {
if (x AND y) == 0000...0)
ret x OR y
else
x = x XOR y
y = x AND y
y * 2 ( 이진수를 한칸 왼쪽으로 옮김 ex) 1101 = 11010
더하기 (x,y)
}
인데 이거보다 효율적인거 생각나는사람..?
수학 컴공 복전이라 여기 물어도 되는 질문인지 몰겟는데 암튼 ㄳ.
중간에 곱하기는 위의 네가지 연산중 하나가 아닌데? 그걸 왼쪽 쉬프트로 한다쳐도 쉬프트 역시 위의 네가지 연산중 하나가 아닌데?