티스토리 뷰

2.1 이진수 표현

  • 비트
  • 2진 숫자의 약어
  • 디지털 시스템에서 수 혹은 문자와 같은 정보를 표현하는 기본 단위
  • 변환 연습

10진수->2진수 : 반복 2분법

2진수->10진수

소수점 이하의 10진수 2진수로 변환->오차발생

소수점 포함 2진수를 10진수로 변환

정수와 소수가 합해진 10진수의 2진수 변환. 

  • 단어 : 디지털시스템에서 데이터의 입력, 처리, 저장 및 출력을 수행하는 기본 단위. 

 

 

2.2 8진수 및 16진수 표현

  • 변환 연습

10진수->8진수 : 반복 8분법

2진수 <-> 8진수 : 세 비트씩 분할

2진수 <-> 16진수 : 네 비트씩 분할

 

 

 

2.3 2진 산술연산

  • 연산 연습

2진 덧셈 : 합과 올림수

2진 뺄셈 : 차이와 빌림수

2진 곱셈

2진 나눗셈

 

 

 

2.4 음수 표현

  • MSB를 부호 비트로 사용하라
  • 부호화 크기 표현 : MSB는 부호비트. (8비트일경우 표현 범위 : -127~127)
  • 1의 보수 표현 : 모든 비트들을 반전
  • 2의 보수 표현 : 모든 비트들을 반전하고, 결과값이 1을 더한다. (올림수가 발생하면 버린다.)
  • 1의보수는 +-0이 생기기 때문에 2의 보수 표현보다 1개 수가 적다

 

  • 연산 연습
  • 2의보수에서 음수양수 10진수로 바꾸기
  • 2의보수 덧셈(올림수 버린다.)

오버플로우 : 덧셈 결과가 수의 표현 범위를 초과함으로써, 틀린 결과를 산출하는 경우

오버플로우인지, 정상 값인지 확인하는방법

가장 왼쪽, MSB 행의 들어가는 carry 값과 나오는 carry 값이 동일하면 정상이고, 동일하지 않으면 오버플로우가 발생한 것이다.

  • 2의 보수 뺄셈

 

2.6 각종 2진 코드들 

  • 8421 코드 : 걍이진수
  • 2421 코드 
  • 84-2-1 코드  
  • 3증수 코드 : 각 코드에 3을 더함
  • 존슨 코드 : 1이 점점 채워짐. 0과 1이 연속적이므로 오류 검출에 좋다.
  • 그레이 코드 : 수가 넘어갈 때 비트 하나만 바뀐다. 산술적 연산은 불가 . 아주 작은 차이를 가지는 연속적인 아날로그 값들을 디지털 값들로 변환하는 경우에 유용하게 사용한다. (회전판 코드)
  • 2진수<->그레이코드  (그레이코드로~MSB 그대로 두고 그 아래부터 한 자리씩 더하기, 2진수로~MSB 그대로 두고 대각선 더하기)

2진수 -> 그레이코드
그레이코드 -> 2진수

  • 오류 검출 코드 
  1. 패리티 비트
  2. 해밍 코드
  3. 기타 오류 검출 코드(바이퀴너리 코드, 2-out-of-5코드, 링카운터 코드)

 

 

1.패리티 코드

  • 통신 과정에서 발생하는 비트 오류를 검출하기 위하여 코드 내용에 따라 딱 하나 추가되는 비트
  • 한 비트 오류만 검출 가능하며, 정정은 불가능
  • 짝수 패리티(even parity) : 전체 데이터에 포함되는 1의 수가 짝수가 되도록 패리티 비트를 추가
  • 홀수 패리티(Odd parity) :  전체 데이터에 포함되는 1의 수가 홀수가 되도록 패리티 비트를 추가
  • 2차원 패리티 방식 : 수평 방향, 수직 방향으로 패리티 비트를 추가한다.

2. 해밍 코드

  • 여러 개의 패리티 비트를 추가해서 오류 검출뿐 아니라 오류 정정도 가능한 코드. 에러 위치를 알 수 있다.

패리티 비트 수 : k , 데이터 비트 수 : d 일때, 

패리티 비트의 수를 결정하는 방법 해밍 코드는 2^n자리에 패리티 비트 작성

개수랑 위치는 알겠는데, 어떤 값을 넣어야 할까? 짝수 패리티 방식으로 예시를 들어 설명해보자.

데이터 '0101'의 해밍 코드를 작성할 때,

 

위 과정을 거쳐 해밍 코드는 1100101이 된다.

패리티 비트는 110, 데이터는 0101

 

오류 검출하는 방법은 그대로 1의 개수를 세어 주면 된다. 

오류가 났다면 패리티 코드 그대로 10진값으로 바꿔주면 오류난 자리 번호가 된다.

 

 

3. 기타 오류 검출 코드들

  • 바이퀴너리 코드 

7비트로 0~9까지의 숫자를 나타낸다.

상위 2비트는 5보다 큰지 작은지를 나타낸다.

하위 5비트는 수의 크기를 나타낸다.

  • 2-out-of-5 코드

다섯 비트를 사용

모든 비트 패턴에서 두 비트가 '1'이다.

  • 링카운터 코드

10비트를 사용

1개의 비트만 '1'로 세트

'1'로 세트된 위치에 해당하는 10진 숫자를 나타냄

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함