기존 답변에서 명시 적으로 언급되지 않은 몇 가지 사항을 수정하겠습니다.
현대 프로세서에서는 비트 단위 연산이 32 비트 또는 64 비트에서 병렬로 작동 할 수 있기 때문에 비트 단위 연산이 너무 빠르다는 것을 알고 있습니다.
사실입니다. 일반적으로 (항상 그런 것은 아님) CPU를 "XX"비트로 표시한다는 것은 대부분의 공통 구조 (레지스터 폭, 주소 지정 가능한 RAM 등)가 XX 비트 (종종 "+/- 1"등)임을 의미합니다. 그러나 귀하의 질문과 관련하여 32 비트 또는 64 비트가있는 CPU는 32 또는 64 비트에서 일정한 시간에 기본 비트 작업을 수행한다고 안전하게 가정 할 수 있습니다.
따라서 비트 단위 연산은 하나의 클럭 주기만 걸립니다.
이 결론이 반드시 그런 것은 아닙니다. 특히 풍부한 명령어 세트 (Google CISC vs. RISC)가있는 CPU는 간단한 명령으로도 한 번 이상 사이클을 수행 할 수 있습니다. 인터리빙을 사용하면 간단한 명령조차도 3 클럭 (예 : fetch-exec-store)으로 분류 될 수 있습니다.
그러나 덧셈은 복잡한 연산입니다
아니요, 정수 추가는 간단한 작업입니다. 빼기. 전체 하드웨어에서 가산기를 구현하는 것은 매우 쉽고 기본 비트 작업만큼 즉각적으로 작업을 수행합니다.
적어도 1 개에서 최대 12 개의 비트 단위 연산으로 구성되므로 자연스럽게 3-4 배 느려질 것이라고 생각했습니다.
그것은 많은 트랜지스터보다 3-4 배가 걸리지 만 무시할 수있는 큰 그림과 비교할 때.
간단한 벤치 마크 후에 비트 단위 연산 (XOR, OR, AND 등)만큼 정확하게 추가하는 것이 놀랍습니다. 누구든지 이것에 빛을 비출 수 있습니까?
예 : 정수 덧셈 은 비트 단위 연산입니다 (다른 것보다 조금 더 비트는 있지만 여전히). 단계적으로 아무것도 할 필요가 없으며 복잡한 알고리즘, 시계 또는 다른 것이 필요하지 않습니다.
CPU 아키텍처보다 더 많은 비트를 추가하려면 단계적으로 처리해야하는 패널티가 발생합니다. 그러나 이것은 또 다른 수준의 복잡성에 있습니다 (조립 / 기계 코드 수준이 아닌 프로그래밍 언어 수준). 이것은 과거에 (또는 오늘날 소형 임베디드 CPU에서) 일반적인 문제였습니다. PC 등의 경우 32 비트 또는 64 비트로 가장 일반적인 데이터 유형으로 충분합니다.