신입 개발자 공부 과정

CS 컴퓨터 공학 지식 - 데이터 본문

카테고리 없음

CS 컴퓨터 공학 지식 - 데이터

Lewisjkim 2024. 1. 4. 17:27

데이터 - 0과 1로 짜여진 배열을 이해, 최소단위는 비트로 이루어진다

*인코딩 - 문자들을 이용해서 0과 1로 변환하는 과정

  • 2진수와 16진수
    • 16진수를 쓰는 이유는 2진수에서 16진수로 변환하기 편하기 때문이다. 2의 승 단위로 표시할 수 있기 때문.
  • 2의 보수법- 음수를 표현하는 방법 중 하나, 어떤 수n을 그보다 큰 2^n에서 뺸 값(수학적 정의)
    • 2의 보수법
      • ex) 11(2) 2의 보수는 11(2)보다 큰 2의n승인 4(10)=100(2) 에서 뺀 값인 01(2)이다
      • 모든 0과 1을 뒤집은 뒤, 1을 더한 값이다. 양수와 음수 구분하는 방법은 CPU 내부의 플래그 레지스터가 있는데 음수 플래그가 세팅 되어 있으면 음수로 처리된다.
  • 부동 소수점 - floating point
    • 아래 내용은 not equal이다. 이유는 컴퓨터 내의 소수점 표현 방식의 한계가 있기 때문이다. 2 진수로 부동 소수점을 정확하게 표현하기 어렵다.

    • 컴퓨터에서는 m x 2^n 꼴로 소수점을 나타내고
    • 가수는 1.xxx꼴로 고정되어있다

    • 위처럼 32비트의 작은 부동 소수점 표현 방식과 64비트의 큰 부동 소수점 표현 방식 이 있다
    • 부호는 세팅되어 있으면 음수고 아니면 양수다
    • 지수 부분에는 바이어스 값이 더해져 저장된다(2^(k-1)-1 (k는 지수의 비트 수)
    • 가수가 저장 될 때 1.xxxx의 xxx부분만 저장된다
    • 10진수 소수를 이진수로 표현할 때 십진수 소수와 이진수 소수 표현이 딱 맞아 떨어지지 않을 수 있다.
    • ex) 1/3를 10진수로 표현하려면 0.333333…된다.
        • 컴퓨터에서는 m x 2^n 꼴로 소수점을 나타내고
        • 가수는 1.xxx꼴로 고정되어있다
          • 아래 내용은 not equal이다. 이유는 컴퓨터 내의 소수점 표현 방식의 한계가 있기 때문이다. 2 진수로 부동 소수점을 정확하게 표현하기 어렵다.부동 소수점 - floating point
        • 위처럼 32비트의 작은 부동 소수점 표현 방식과 64비트의 큰 부동 소수점 표현 방식 이 있다
        • 부호는 세팅되어 있으면 음수고 아니면 양수다
        • 지수 부분에는 바이어스 값이 더해져 저장된다(2^(k-1)-1 (k는 지수의 비트 수)
        • 가수가 저장 될 때 1.xxxx의 xxx부분만 저장된다
        • 10진수 소수를 이진수로 표현할 때 십진수 소수와 이진수 소수 표현이 딱 맞아 떨어지지 않을 수 있다.
        • ex) 1/3를 10진수로 표현하려면 0.333333…된다.

문자 집합 & 인코딩

  • 문자 인코딩과 디코딩
    • 인코딩 - 문자를 0과 1로 구성된 문자코드로 표현하는 방법
    • 디코딩 - 0과 1로 구성된 문자코드를 사람이 이해할 수 있는 문자로 바꿀 수 있는지?
    • 문자 집합(Character Set) - 표현 가능한 문자들의 집합

    • 위와 같은 경우는 컴퓨터가 이해할 수 없는 문자 집합을 사용했거나 호환되지 않은 인코딩 방식으로 데이터를 읽어 들였거나 A방식으로 인코딩하고 B방식으로 디코딩 했을 때임으로→ 인코딩 방식을 바꾸면 해결된다.
    • ASCII - 기본적인 문자집합 및 127까지의 숫자에 대응하는 인코딩 방식
      • 알파벳
      • 아라비아 숫자
      • 일부 특수 문자
      • 제어 문자
      • 오늘날의 문자집합과 인코딩 디코딩 방식이랑 호환되는 경우가 많다.
      • 기본적으로 8bit를 이용해서 표현한다(1bit 오류검출, 7bit가 실질적으로 사용된다) 고로 2^7 = 128가지의 문자집합을 표현할 수 있는 것이다.
      • 한글을 표현 할 수 없다.
    • 유니코드 문자 집합
      • 대부분의 언어 / 특수문자 / 이모티콘 / 화살표 등
      • 인코딩 하는 방식은 utf - 8, utf - 16, utf - 32 등이 있고
      • 그리고 각 인코딩 방식들이 대응 하는 대상은 코드 포인트다
      • 유니코드 코드 포인트 - 유니코드 문자에 부여된 고유한 수
        • 예시) ‘한’이라는 문자의 코드 포인트는 D55C