학과 공부 ( Study )/디지털논리회로 ( Digital Logic Circuit )

수 체계와 코드

MZ 아이종 2022. 4. 9. 17:06

 

 

컴퓨터와 사람의 언어는 다르다, 또한 사용하는 수의 체계 또한 다르다.

디지털에서 사용하는 수의 구성과, 사용 방법에 대해서 알아보자.

 

 

참고자료

˙ 디지털 디자인 (Digital Design) 제 6판, 퍼스트북

˙ 디지털 시스템 원리 및 응용 제 10판, 가디언 북 

 

1. 2-> 10진 변환

2. 10-> 2진 변환

3. 16진법

4. BCD 코드

5. 그레이 코드

6. 바이트 ( Byte ), 노블 ( Nobble ). 워드 ( Word )

7. 알파 뉴메릭 코드

8. 오류검증을 위한 패리티 방법

9. 2진 연산

10. 보수화

 

 

1. 2 -> 10진 변환

2진수 또한 10진수와 같이 각 자리에 대응되는 값이 있다. 그러므로 각 자리의 수와 대응되는 값을 곱해 모두 더해주면 10진수가 된다.

 

예를 들어 1011(2)의 경우 $$1\times 2^{3}+0\times 2^{2}+1\times 2^{1}+1\times 2^{0}=11(10)$$로 변환할 수 있다.  

 

2. 10 -> 2진 변환

10진수를 여러번 2로 나누면 나눌때 마다 나머지가 발생하게 되는데, 이때 생기는 나머지를 최하위 비트부터 채워넣는다.

 

예를 들어 11(10)의 경우 1, 1, 0, 1 순서로 나머지가 발생하니 1011(2)로 변환된다.

M진수로 변환하고 싶은 경우 10진수의 수를 M으로 나누었을 때 발생하는 나머지를 작성하면 된다.

 

2진수의 경우 N비트일때 0~2^(N-1)범위인 2^N개의 값을 나타낼 수 있다.

 

 

3. 16진법

16진수의 경우 디지털 시스템에서 비트의 열을 간단히 표현하는 데 자주 사용된다. 디지털 신호 체계인 2진수를 통해 변환할 수 있어 편리성이 높으며 실수를 방지할 수 있다. 0~9, A~F로 이루어 지며, 10진수를 16으로 나누어 발생하는 나머지로 작성한다.

2진수 1101010101101010(2)의 경우 1101 0101 0110 1010와 같이 4자리씩 떨어뜨려 D56A(16)와 같이 표현할 수 있다.

 

마찬가지로 2^N진수의 경우 최하위 비트부터 N개씩 잘라 구분하면 동일한 방식으로 표현할 수 있다.

   

 

4. BCD 코드

숫자, 문자, 단어들이 특수한 그룹으로 표현된 기호들을 코드라고 한다. 

BCD 코드의 경우 10진수를 예로들면, 4비트당 하나의 자리수를 표현한다.

 

 

이 경우 10진수와 상호 변환이 쉽고, 하드웨어적 관점에서 용이성이 잘 맞지만, 상대적으로 많은 수의 비트가 필요하고 전부 사용하지도 않아 비효율적이라는 단점이 있다. 

 

5. 그레이 코드

다자털 회로가 입력 신호의 변화를 잘못 핵석하는 경우를 줄이고자 개발된 수열 표현방법으로 가중치가 없어 연산에는 부적합하다는 단점이 있다. 

아날로그 - 디지털 입/출력  간의 코드로 사용한다. 

 

=> XOR 방식의 경우 

그레이 코드 -> 2진수 :

최상위 비트는 그대로 쓰고, 그다음 2비트 부터 앞의 비트와 같으면 0 다르면 1을 쓴다.

 

2진수 -> 그레이 코드 :

그레이 코드의 최상위 비트는 그대로 쓰고, 생성된 2진 비트와 다음 그레이 비트가 같으며 0 다르면 1이다.

 

 

 

6. 바이트 ( Byte ), 노블 ( Nobble ), 워드 ( Word )

1 Byte = 8 Bit

1 Nobble = 1/2 Byte = 4 Bit

Word : 정보사용 시스템의 데이터 통로의 크기에 따라 다르다.

기기에 따라 다르며 64 Bit PC의 경우 64 Bit = 1 Word 이다.

 

 

7. 알파 뉴메릭 코드

컴퓨터에서 숫자뿐만 아니라 알파벳 문자, 구둣점, 특별한 문자코드들을 인식하는 코드로 대표적으로 ASCII 코드가 있다.

 

ASCII 코드 :

7 Bit의 코드그룹으로 외부장치와의 알파 뉴메릭 코드 정보전송에 사용된다.

키보드에서 만들어진 형태의 정보를 컴퓨터 내부에 저장하기 위해 이 코드를 사용한다.

 

 

8. 오류검증을 위한 패리티 방법

전송 오류의 주된 원인인 전기적 잡음을 검출 / 수정하는 방법 중 가장 널리 쓰이는 방법 중 하나이다.

 

패리티 코드 :

한곳에서 다른 곳으로 전송되는 코드 그룹에 덧붙여지는 여분의 비트이다. 전송되는 코드그룹의 1 개수에 따라 0 / 1 을 결정한다. 사용하는 패리티의 종류에 따라 패리티의 일치를 확인하는 작업인 패리티 검사방식이 달라지니  / 수신기 사이 어떤 패리티 방법을 쓸지 정해둬야 한다.

하지만 오류 발생시 어느 비트의 값이 바뀐지 모르고, 짝수개의 비트가 오류 발생 시 본래의 의도와는 다르게 작동된다. ( 오류인지 감지가 불가능 하다. ) 때문에 단일 오류가 매우 적고 2 Bit 오류확률이 거의 0일때 사용된다.

 

짝수 패리티 방법 : 코드그룹 전체의 1 개수가 짝수가 되게 맞춘다.

홀수 패리티 방법 : 코드그룹 전체의 1 개수가 홀수가 되게 맞춘다.

 

9. 2진 연산

사람의 경우 10진법을 사용하고 부호를 사용하므로 계산이 어렵지 않다. 하지만 컴퓨터의 겨우 2진법을 사용하고 부호가 없기때문에 최상위 비트를 통해 부호를 구분한다.

 

 

일반적인 양수끼리의 덧셈에서는 오류가 발생하지 않는다. 하지만 뺄셈의 경우 오류가 발생할 수도 있다. 

 

 

위의 경우와 같이 양수 끼리의 덧셈은 계산이 완료된 2진수를 10진수로 변환하여도 값이 동일하다. 하지만 뺄셈은 계산이 완료된 이후 10진수로 변환하면 제대로 된 값이 나오지 않음을 확인할 수 있다.

 

 

10. 보수화

 

위의 경우처럼 값이 제대로 출력되니 않는 경우를 방지하기 위해 양수를 빼는것이 아닌 음수를 더하는 방식으로 작동한다. 이를 보수화 라고 하며, 대표적인 예로 1의 보수와 2의 보수가 있다.

 

 

 

 

1의 보수의 경우 음수 전체를 반전시켜 양수와 덧셈을 해 준다. 결과가 음수면 최상위 비트를 제외한 수를 보수화 해준다. 1의 보수의 경우 0인경우 -0 / +0이 발생하는 경우가 있다. 이는 2의 보수로 해결할 수 있다.

 

 

 

 

2의 보수또한 1의 보수와 개념은 동일하나 보수화 하는 과정에서 최하위 비트에 1을 더해준다는 점이 다르다. 

 

 

 

 

 

 

 

 

'학과 공부 ( Study ) > 디지털논리회로 ( Digital Logic Circuit )' 카테고리의 다른 글

논리회로의 묘사  (0) 2022.04.14
기초개념  (0) 2022.04.04