더보기

기수법 진수변환 보수 고정소수점 부동소수점 아스키코드 유니코드

 


01장 CPU
02장 운영체제 - 프로세스와 스레드
03장 운영체제 - 메모리
04장 프로그래밍 언어, 컴파일러
05장 변수, 정수, 실수, 문자열
06장 함수
07장 객체지향
08장 클래스
09장 자료구조 1
10장 자료구조 2
11장 알고리즘
12장 네트워크
13장 데이터베이스


 

 

 

 

 

1. 변수

  • 변수 : 데이터를 저장할 수 있는 메모리 공간
  • 저장되는 데이터 : 숫자, 문자, 객체(class), 메모리 주소(포인터 변수), 함수

💡 이번 페이지는 데이터들을 변수에 어떻게 저장하는지에 대해서 설명합니다.

변수에 값이 담겨 있는 모습

 

 

 

 

 

 

2. 정수

2-1. 기수법

  • 기수법 : 수를 시각적으로 나타내는 방법
  • 기수법의 종류
    • 10진수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    • 2진수 : 0, 1
    • 16진수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

2-2. 진수 변환

1) 2진수 → 10진수

  • 11001이라는 2진수를 10진수로 변환하는 예시
    • 2진수의 각 자릿수 제곱을 계산한 숫자를 전부 더한다.
    • 정답 : 16 + 8 + 1 = 25

 

2) 10진수 → 2진수

2-3. 보수

1) 보수

  • n진수에는 n-1의 보수, n의 보수가 존재
    • 10진수 n의 9의 보수 : n의 모든 자릿수를 9으로 만들 수 있는 숫자
    • 10진수 n의 10의 보수 : 거기에 1을 더한 것

  • 예시
    • 10진수 26의 9의 보수 : 73
    • 10진수 26의 10의 보수 : 74
    • 2진수 1010의 1의 보수 : 0101
    • 2진수 1010의 2의 보수 : 0110

2) 보수를 사용하는 이유

  • 컴퓨터가 뺄셈 연산을 간단하게 하기 위함
    • 음수를 2진수 2의 보수로 표현하고, 보수를 사용해서 뺄셈을 덧셈 연산으로 처리한다.

 

 

 

 

 

 

 

3. 실수

3-1. 실수의 진수 변환

  • 10진수 실수 → 2진수 실수
    • 7.75 = 4 + 2 + 1 + 0.5 + 0.25 = 111.11

3-2. 고정 소수점 (fixed-point)

  • 특징 : 비효율적이지만 계산하기 쉬움 (요즘 잘 안 씀)
  • 부호(sign) 부분 : 0 양수, 1 음수

 

3-3. 부동 소수점 (floating-point)

  • 특.징 : 둥.둥 떠다.니는 소.수점... (비트를 좀 더 효율적으로 쓸 수 있어서 요즘 많이 씀)
  • 종류
    • Single Precision(32bit) : Float
    • Double Precision(64bit) : Double

  • 지수 부분 (exponent)
    • 음수를 표현하기 위해서 보수 기법 대신(뺄셈을 사용하지 않기 때문) bias 표현법을 사용
    • exp - bias = 실제 지수

bias 표현법 예제 (지수부가 8bit인 부동 소수점을 사용할 경우)

  • 가수 부분 (manissa) : 길면 자르고, 남으면 0으로 채움

 

 

 

 

 

 

 

4. 문자와 문자열

3-1. 문자 인코딩

  • 문자를 숫자로 표현하는 것

3-2. 아스키 코드

  • 아스키 코드 : 7비트(0~127) 숫자에 문자를 하나씩 대응한 것
    • 자료형 char에 저장할 수 있음 (1Byte = 8Bit = 0~255)
  • 아스키 코드표

 

3-3. 유니코드

  • 유니코드 : 16bit(0~65535) 범위에 문자를 하나씩 대응해 놓은 것.
  • 기존 아스키 코드는 유지
  • 유니코드 코드표

https://hanseul-lee.github.io/2020/08/27/20-08-27-code/

  • 유니코드 평면
    • 유니코드로 부족해서 도입
    • 기본 다국어 평면(BMP)을 포함해 평면이 17개 있으므로, 모든 문자를 표현하려면 최소 3Byte의 자료형이 필요
  • UTF(Unicode Transformation Format)를 이용한 유니코드 인코딩
    • UTF : 유니코드 문자를 인코딩하는 방식으로, 몇 Bit를 사용하여
    • 종류
      • UTF-8
        • 문자 하나를 표현할 때 최소 8bit가 필요
          • 0000~007F (8bit로 표현)
          • 0080~07FF (16bit로 표현)
          • 0800~FFFF (32bit로 표현)
        • BMP는 2Byte로 표현 가능하지만, 구분자를 표현하기 위해 3Byte까지 늘어남비트는 순서대로 x로 표시된 비트에 들어감 (아래 예제사진)
        • 가변형 인코딩 방식
        • 아스키 코드와 호환됨
      • UTF-16
        • 문자 하나를 표현할 때 최소 16bit가 필요
        • 마찬가지로, 가변형 인코딩 방식
        • 자료형 wchar은 UTF-16을 이용하여 인코딩 (2Byte = 16Bit)
      • UTF-32
        • 문자 하나를 표현할 때 최소 32bit가 필요
        • 저장공간의 낭비가 심함

비트는 순서대로 x로 표시된 비트에 들어감

 

3-4. 프로그래밍 언어 문자열

 

 

+ Recent posts