시리즈:수학인듯 과학아닌 공학같은 컴퓨터과학/알고리즘 기초 편집하기

편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
69번째 줄: 69번째 줄:
여담으로, 위 취소선의 답은 의외로 간단하다. 정수가 저장되어 있는 a와 b가 있을 때, a와 b를 더한 다음 a에 저장한다. 그 다음 a에서 b를 뺀 값 을 b에 저장한다.(원래 a값이 되었다.) 그 다음 a에서 b를 뺀 값을 a에 저장하면 된다. <del>숫자가 아니고 객체면? 음료수는 더하고 빼면 섞이잖아</del> 하지만 이 방법은 [[산술 오버플로우]]의 문제 때문에 자료형이 표현 가능한 범위보다 더 적은 범위의 변수만 바꿀 수 있다.
여담으로, 위 취소선의 답은 의외로 간단하다. 정수가 저장되어 있는 a와 b가 있을 때, a와 b를 더한 다음 a에 저장한다. 그 다음 a에서 b를 뺀 값 을 b에 저장한다.(원래 a값이 되었다.) 그 다음 a에서 b를 뺀 값을 a에 저장하면 된다. <del>숫자가 아니고 객체면? 음료수는 더하고 빼면 섞이잖아</del> 하지만 이 방법은 [[산술 오버플로우]]의 문제 때문에 자료형이 표현 가능한 범위보다 더 적은 범위의 변수만 바꿀 수 있다.


사실 덧셈보다 더 빠른 방법은 XOR 회로를 사용하는법이 있다. 값이 같지 않으면 a=a^b b=a^b a=a^b를 넣어두면 정수가 아니더라도, 산술적 연산이 아니라 비트 배열 자체가 바뀌기 때문에 값이 교환된다. 하지만, 컴퓨터의 최적화 정도에 따라서 그냥 노란 컵을 이용하는 방법이 더 빠를 수도 있다.
사실 덧셈보다 더 빠른 방법은 XOR 회로를 사용하는법이 있다. 값이 같지 않으면 a=a^b b=a^b a=a^b를 넣어두면 정수가 아니더라도, 산술적 연산이 아니라 비트 배열 자체가 바뀌기 때문에 값이 교환된다.<s>하지만 병렬 프로그래밍에서는 무리DA☆ZE★</s> 하지만, 컴퓨터의 최적화 정도에 따라서 그냥 노란 컵을 이용하는 방법이 더 빠를 수도 있다.


== 왜 알아야 하나? ==
== 왜 알아야 하나? ==
리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다.
취소 편집 도움말 (새 창에서 열림)

| () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |}

이 문서는 다음의 숨은 분류 1개에 속해 있습니다: