A Mod 4
은 원래 방정식에서 BCD 숫자의 두 개의 최하위 비트를 제공합니다. 그래서, 지금처럼 별도의 두 대부분 최하위 비트를 살펴 보자 :
X = A AND 3 = A Mod 4 (two least significant bits)
Y = A AND Ch (two most significant bits)
을 Ch
의 h
접미사가 16 진수로 C
(즉 Ch
바이너리에서 1100
이다), 그리고 AND
논리를 표시 수단 곳 조작. 우리가 a
, b
, c
및 d
임의의 이진수는
A = abcd
, 우리는 중요한
X = 00cd
Y = ab00
을 얻을 것이라고했다 예를 들어
은 참고
A = X + Y
(ab00 + 00cd = abcd)
이렇게하면 그래서, 우리는 최종 방정식 100 * Y + 25 * A + 2
에서
125 * A - 100 * (A Mod 4) + 2 (original equation)
= 125 * (X + Y) - 100 * X + 2 (replace A with X + Y)
= 125 * Y + 125 * X - 100 * X + 2 (distributivity)
= 125 * Y + 25 * X + 2 (125 * X - 100 * X = 25 * X)
= 100 * Y + 25 * (X + Y) (125 * Y = 100 * Y + 25 * Y)
= 100 * Y + 25 * A + 2 (replace X + Y with A)
이 특히 추가를 통해
125 * A
= 125 * (X + Y)
= 125 * X + 125 * Y
를 곱셈의 분배 법칙을 적용, 두 용어, 우리는 (100 * Y
및 25 * A
)를 계산 할 필요가있다 플러스 하나의 상수 용어 (2
).
100 * Y
이라는 용어는 BCD에서 쉽습니다. Y
왼쪽에서 두 자리 숫자, 수백 자리로 시프트하십시오. 25 * A
용어를 들어
, 우리는 우리가 함께 세 가지 조건을 추가해야하는 곱셈기 지금 25
에 의해 A
를 곱해야하지만 :
- 이 설정 비트 사이에 중복이 없다 ("1"비트)를
100 * Y
및 25 * A
으로 표시합니다.사실 100 * Y
이라는 용어는 백 자리의 두 최상위 비트 (Y
의 정의로 되돌아 간다)를 설정할 수 있으며, 25 * A
이라는 용어는 최대로 동일한 자리 위치의 두 개의 최하위 비트를 설정합니다. 이를 확인하려면 25 * A = 100 * A/4
을 기억하십시오. 즉, 수백 자릿수는 해당 용어에 대해 3을 초과 할 수 없습니다.
- 두 단어 모두
100 * Y
및 25 * A
은 25의 배수이므로 합계가 더 작음을 의미하므로 합계의 하위 자리는 0 (0000) 또는 5 (0101) 일 수 있습니다. 두 번째 비트는 그 합계로 설정할 수 없으므로 상수 2
용어와 겹치지 않습니다.
어떤 비트 위치를 설정할 수 있는지 고려할 때 세 용어가 모두 겹치지 않으므로 실제 가산기 대신 간단한 논리 OR 연산으로 세 비트를 모두 추가 할 수 있습니다.
실제로 우리가 해본 결과, 가중치가 필요하지 않았기 때문에 4)가 유일한 답입니다.
처음 세 줄에 대한 자세한 내용을 추가 하시겠습니까? 나는 그것을 얻을 수 있었다! –
@ user4249446이 답변으로 돌아 오기까지 오래 동안 사과 드려 죄송합니다. 처음에는 실제로 개선이 필요했고, 여전히 유용 할 것으로 기대하면서이를 수정했습니다. 검토하고 다른 것이 명확하지 않은지 물어 보는 것을 주저하지 마십시오. –
정말 고마워. 인정해. X = A와 3 = A 모드 4 (낮은 부분), Y = A와 Ch = A - MOD 4 (높은 부분)에 대해 좀 더 설명 해주시겠습니까? 정말 고마워. –