본문 바로가기
Computer Engineering

컴퓨터로 숫자 문자 표현하는 방법 (이진수, 십육진수, 아스키코드)

by KkingKkang 2024. 1. 19.

1. 정보 단위

워드(word)

  • CPU가 한 번에 처리할 수 있는 정보의 크기 단위
  • 하프 워드 (half word) /  풀 워드 (full word) / 더블 워드 (double word)

 

2. 이진수 표기

ex) 8을 표기할 때 

  • 1000(2)
  • 0b1000

 

0과 1로 음수 표현하기 : 2의 보수

  • 어떤 수를 그보다 큰 2ⁿ에서 뺀 값
  • ex) -3
    • 11(2) 보다 큰 2ⁿ = 100(2)
    • 100(2) - 11(2) = 01(2) 
  • 모든 0과 1을 뒤집고 1 더한 값
    • 11key(2) -> 00(2) -> 01(2) 

플래그(flag) 로 양수 음수 구분

플래그 종류 의미 사용 예시
부호 플래그 연산한 결과의 부호를 나타낸다 1 : 계산 결과는 음수
0 : 계산 결과는 양수
제로 플래그 연산 결과가 0인지 여부를 나타낸다 1 : 연산 결과는 0
0 : 연산 결과는 0이 아님
캐리 플래그  연산 결과 올림수나 내림수가 발생하는지를 나타낸다. 1 : 올림수나 빌림수가 발생했음
0 : 발생하지 않았음
오버플로우 플래그 오버플로우가 발생하는지를 나타낸다 1 : 오버플로우가 발생
0 : 오버플로우 발생하지 않음 
인터럽트 플래그 인터럽트가 가능한지를 나타냄. 1 : 인터럽트 가능
0 : 인터럽트 불가
슈퍼바이저 플래그 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지 나타냄 1 : 커널모드
0 : 사용자모드

 

3. 16진법

이진법으로는 숫자의 길이가 너무 길어지기 때문에 컴퓨터의 데이터를 표현할 때 16진법도 많이 사용한다

(10~15 : A~F)

16진법 표기 

  • 15(16)
  • 0x15

  • 문자 집합(character set)
    • 컴퓨터가 이해할 수 있는 문자의 모음
  • 인코딩(encoding)
    • 코드화하는 과정
    • 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정
  • 디코딩
    • 코드를 해석하는 과정
    • 0과 1로 표현된 문자 코드를 문자를 변환하는 과정

 

4. 아스키 코드

  • 초창기 문자 집합 중 하나
  • 알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자
  • 7비트로 하나의 문자 표현 
  • 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)
  • A는 65 a는 97
  • 한글을 포함한 다른 언어 문자, 다양한 특수 문자 표현 불가 
    • 아스키 코드는 7비트로 하나의 문자를 표현하기에
    • 128개보다 많은 문자를 표현할 수 없음 (2의 7승)
    • 8비트 확장 아스키가 등장했지만 여전히 부족함

 

5. 한글 인코딩

  • 완성형 : 단어 하나하나에 고유 코드 부여 
    •  EUC-KR : 글자 하나 하나에 2바이트 크기의 코드 부여 (2바이트 == 16비트 == 4자리 십육진수)
  • 조합형 : 자음 모음에 코드 부여 

 

6. 유니코드

  • 통일된 문자 집합
  • 한글, 영어, 화살표와 같은 특수 문자, 심지어 이모티콘까지 표현 가능
  • UTF-8, UTF-16, UTF-32 ....
  • UTF : Unicode Transformation Format
반응형

'Computer Engineering' 카테고리의 다른 글

빠른 CPU를 위한 설계 기법 (코어, 클럭)  (0) 2024.04.02
명령어 사이클과 인터럽트 (interrupt)  (0) 2024.04.02
ALU와 제어장치 / 레지스터  (0) 2024.03.27
명령어  (0) 2024.01.22
컴퓨터 구조  (1) 2024.01.04

댓글