저는 암호에 관한 기사를 읽었으며 "32 비트 컴퓨터가 실제로 512 비트 값 또는 64 비트 값으로 어떻게 연산합니까?"라고 생각했습니다.32 비트 컴퓨터는 큰 비트 수와 어떻게 작동합니까? 전의. 512 비트 정수
누구나 올바른 방향으로 나를 가리킬 수 있습니까? 어쩌면 내가 알고 싶은 것을 적절하게 표현하는 방법을 잃어 버렸을 지 모르지만 Google 검색은 이것을 알아 내는데별로 도움이되지 못했습니다.
감사합니다.
저는 암호에 관한 기사를 읽었으며 "32 비트 컴퓨터가 실제로 512 비트 값 또는 64 비트 값으로 어떻게 연산합니까?"라고 생각했습니다.32 비트 컴퓨터는 큰 비트 수와 어떻게 작동합니까? 전의. 512 비트 정수
누구나 올바른 방향으로 나를 가리킬 수 있습니까? 어쩌면 내가 알고 싶은 것을 적절하게 표현하는 방법을 잃어 버렸을 지 모르지만 Google 검색은 이것을 알아 내는데별로 도움이되지 못했습니다.
감사합니다.
이 GregS's comment의 확장입니다.
은 가정하자 나는 (9 * 9 = 81
까지 0 * 0 = 0
에서) 모든 백 single-digit * single-digit
곱셈을 알고, 누군가가 561 * 845
을 계산하는 나에게 묻습니다. 나는 일 수있다는 "미안하다. 나, 나는 내 어린 시절 교육을 기억하고 할 수있는이 :
561
845 *
----------
2805
2244
4488 +
==========
474045
.
이제 가정하자 대신 십진수, 심볼들 각각을 상기했다 대신 32 비트 워드; 나와 대신에 우리는 32 비트 워드를 64 비트 결과에 곱하고 32 비트 워드를 더할 수있는 프로세서를 가지고 있습니다. Voila, 우리는 임의로 큰 이진 곱셈을하는 시스템을 가지고 있습니다.
한 번에 32 비트. 반복 연산을 통해 다중 단어 산술을 허용하기 위해 캐리, 오버 플로우 등을 나타내는 플래그가 있습니다.
너트 쉘 (muts shell)에서 Mitch가 말한 것과 같은 종류의 비트로 비트를 조금씩 분해합니다. 프로세서를 처리하는 데 약간의 시간이 걸릴 수도 있지만, 이것이 우리가 이제이 프로세스의 속도를 높이기 위해 멀티 코어 프로세서를 사용하게 된 이유입니다. 또한 대부분의 OS가 32 비트 및 64 비트 버전과 결국 128 개로 나뉘어져 있습니다. 관심이 있으시면 어셈블리 언어 및 기계 언어에 대한 수업을 받으십시오.
32 비트 프로세서는 더 큰 숫자를 더 많은 숫자로 나눌 수 있습니다 하나의 32 비트 레지스터에서 연산을 수행하는 것보다 느리지 만 하나의 레지스터보다 더 큽니다. 덧셈/뺄셈의 경우, 그것은 최하위 레지스터로부터 산술 연산을 수행하고 상태 비트를 다음 중요 레지스터로 전달합니다. 곱셈/나눗셈을 사용하면 좀 더 복잡해질 수 있지만 주요 단점은 성능입니다.
자세한 내용은 http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic을 참조하십시오.
또한이 질문 : How do programming languages handle huge number arithmetic
한 번에 32 비트를 조작하면 .... –
알고리즘은 실제로 학년 수학 계산에서 익숙합니다. 단, 알고리즘을 알지 못하는 경우는 예외입니다. 기본 10 자릿수 대신 기본 2 ** 32 단어를 사용합니다. 크 누스의 "Seminumerical Algorithms"에는 많은 변형과 분석이 포함되어 있습니다. –