3 초과 부호
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
3 초과 코드는 각 십진수 자릿수에 3을 더한 후 4비트 이진수로 표현하는 방식이다. 이 코드는 가중치가 없는 코드이며, 자기 보수 성질을 가져 9의 보수를 쉽게 얻을 수 있어 뺄셈 연산에 용이하다. 3 초과 코드는 메모리나 전송 라인의 오류 감지에 활용될 수 있으며, 데이터 전송을 위해 3-of-6 코드 또는 4-of-8 코드로 확장될 수 있다.
더 읽어볼만한 페이지
| 3 초과 부호 | |
|---|---|
| 명칭 | |
| 이름 | Stibitz 코드 |
| 다른 이름 | 3-초과 코드 (Excess-3 code) |
| 특성 | |
| 자릿수 | 4 |
| 트랙 | 4 |
| 가중치 | 8 4 |
| 가중치 범위 | 1..3 |
| 연속성 | 아니오 |
| 순환성 | 아니오 |
| 최소 거리 | 1 |
| 최대 거리 | 4 |
| 중복성 | 0.7 |
| 어휘 편찬 | 1 |
| 보수 | 9 |
2. 표현
3 초과 코드는 각 십진수 자릿수에 3을 더한 후, 그 결과를 4비트 이진수로 표현하는 방식이다. 3 초과 코드는 가중치가 없는 코드(non-weighted code)로, 각 비트가 특정 값을 나타내지 않는다. 가장 작은 이진수는 가장 작은 값을, 가장 큰 이진수는 가장 큰 값을 나타낸다.
| 십진수 | 3 초과 | BCD 8-4-2-1 | 이진수 |
|---|---|---|---|
| 0 | 0011 | 0000 | 0000 |
| 1 | 0100 | 0001 | 0001 |
| 2 | 0101 | 0010 | 0010 |
| 3 | 0110 | 0011 | 0011 |
| 4 | 0111 | 0100 | 0100 |
| 5 | 1000 | 0101 | 0101 |
| 6 | 1001 | 0110 | 0110 |
| 7 | 1010 | 0111 | 0111 |
| 8 | 1011 | 1000 | 1000 |
| 9 | 1100 | 1001 | 1001 |
3 초과 코드의 산술 연산은 일반적인 BCD 또는 이진 연산과는 다른 알고리즘을 사용한다. 두 개의 3 초과 숫자를 더하면, 결과는 6 초과 코드가 된다. 예를 들어, 1 (3 초과 코드로 0100)과 2 (3 초과 코드로 0101)을 더하면, 결과는 3 (3 초과 코드로 0110)이 아니라 6 (3 초과 코드로 1001)이 된다. 덧셈 결과에서 3을 빼거나 (결과 자릿수가 10보다 작을 때), 13을 빼서 (자리 올림이 발생했을 때) 올바른 3 초과 코드 값을 얻을 수 있다.[1]
3 초과 코드의 가장 큰 장점은 자기 보수 성질이다. 즉, 모든 비트를 반전시켜 9의 보수를 쉽게 얻을 수 있다는 점이다. 이는 뺄셈 연산을 간단하게 만들어 준다. 두 3 초과 숫자의 합이 9보다 크면, 4비트 가산기의 캐리 비트가 1이 된다. 또한 0000과 1111 코드는 사용되지 않으므로, 메모리나 전송 라인의 오류를 감지하는 데 활용될 수 있다.
3 초과 코드는 데이터 전송을 위해 6비트 또는 8비트 코드로 확장될 수 있다.
예를 들어 127을 3 초과 코드로 나타내려면, 각 자릿수를 변환하여 0100, 0101, 1010을 얻는다.
3. 연산
4. 장점
5. 확장
6. BCD 8-4-2-1에서 3 초과 코드로 변환 예시
vhdl
entity bcd8421xs3 is
port (
a : in std_logic;
b : in std_logic;
c : in std_logic;
d : in std_logic;
an : buffer std_logic;
bn : buffer std_logic;
cn : buffer std_logic;
dn : buffer std_logic;
w : out std_logic;
x : out std_logic;
y : out std_logic;
z : out std_logic
);
end entity bcd8421xs3;
architecture dataflow of bcd8421xs3 is
begin
an <= not a;
bn <= not b;
cn <= not c;
dn <= not d;
w <= (an and b and d ) or (a and bn and cn)
or (an and b and c and dn);
x <= (an and bn and d ) or (an and bn and c and dn)
or (an and b and cn and dn) or (a and bn and cn and d);
y <= (an and cn and dn) or (an and c and d )
or (a and bn and cn and dn);
z <= (an and dn) or (a and bn and cn and dn);
end architecture dataflow; -- of bcd8421xs3
참조
[1]
서적
Computer Architecture and Organization
McGraw-Hill International Book Company
1978
[2]
문서
이런 코드를 자기 보수 코드라고 한다.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com