CS

0과 1로 숫자/문자를 표현하는 방법

whyHbr 2024. 2. 22. 22:47
728x90
반응형

https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

 

[지금 무료] 개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제 강의 - 인프런

베스트셀러 『혼자 공부하는 컴퓨터 구조 + 운영체제』 저자 무료 직강. 개발자들이 꼭 알아야 할 컴퓨터 구조, 운영체제 전공서 요약집., 개발자 필수지식 컴퓨터 구조와 운영체제강의 하나로

www.inflearn.com

 

 

0과 1로 숫자 표현하기

정보단위:

비트 bit: 0과 1을 표현하는 가장 작은 단위

1바이트 byte : 8bit

 

워드word?

- CPU가 한 번에 처리 할 수 있는 정보의 크기 단위

- 하프워드 (half word): 워드의 절반 크기

- 풀 워드 full word: 워드 크기

- 더블 워드 double word : 워드의 두배 크기

[만약 CPU가 한 번에 64비트씩 처리 할 수 있다면 그 CPU의 1워드 크기가 64비트다)

 

이진수 Binary?

- 0과 1로 수를 표현하는 방법

- 숫자 1을 넘어가는 시점에서 자리올림 

- 우리가 일상적으로 사용하는 10진법은 숫자 9가 넘어갈때 자리올림을 한다.

 

이진수  8 표기 방법:  1000(2) , 0b1000 -->  이 두 수의 값은 8

이진수를 음수로 표현하는 방법:  2의 보수

모든 0과 1을 뒤집고 1을 더하면 2의 보수가 된다.

ex) 1011 -> 0100 -> 0101 

 

양수 음수를 구분하는 방법:

사람은 못한다.

CPU내부에 플래그 레지스터라는 특별한 레지스터가 구분한다.

 

십육진법

 - 이진법으로는 숫자가 너무 길어짐

 

표현법:

 

표기 :

수학적 표기 방법 - 15(16) 

코드상 표기 방법 - 0x15

 

 

 

 

이진수에서 십육진수 변환은 간단하다.

0001 1100 1010 1000 -> 1, 12, 10, 8 -> 1CA8

 

십육진수에서 이진수 변환도 간단하다

1101 0101- > D5

 

16진수를 쓰는 이유? 2 -16진수간 변환이 간단하다.

 

0과 1로 문자 표현하기

 

문자 집합: 컴퓨터가 이해할 수 있는 문자의 모음

인코딩 encoding : 코드화 하는 과정, 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정

디코딩 decoding : 코드를 해석하는 과정, 0과 1로 표현된 문자 코드로 문자를 변환하는 과정

 

사람이 컴퓨터에게 - 인코딩

컴퓨터가 사람에게 - 디코

 

128개의 문자를 아스키코드로 표현 가능하다.

 

 

한글을 위한 인코딩:

조합형은 레고 블록을 쓰는 것 처럼 고유한 코드를 부여

완성형은 그냥 글자 통째로 코드를 부여

 

2바이트는 16비트 , 16진수를 표현하기 이해선 4자리가 필요

https://dencode.com/

 

DenCode | Encoding & Decoding Online Tools

Encoding and Decoding site. e.g. HTML Escape / URL Encoding / Base64 / MD5 / SHA-1 / CRC32 / and many other String, Number, DateTime, Color, Hash formats!

dencode.com

 

 

이러한 문제로 통일된 문자 집합과 인코딩 방식을 개발함

가변 길이가 무엇에 따라 결정되나? 유닛코드 값의 범위에 따라 다르다

유니코드에 부여된 값 ==  유니코드 코드 포인트

 

UTF-8로 인코딩한 값은 가변길이 인코딩이기 때문에 1바이트가 될수 있고 4바이트가 될 수 있따

어떤 방식으로 인코딩 되느냐? 그것은 유니코드 문자에 부여된 코드 포인트의 범위에 따라서 그 코드 포인트를 이 형식에 맞게 넣어주면 그게 인코딩 된 결과다.

 

 

--------------

 

스터디 QA 시간

Q. 이진수의 양수 음수를 구분하는 방법은?
A. 사람은 구분하지 못합니다.
cpu내 플래그 레지스터라는 레지스터가 구분합니다.

Q. EUC -KR이 사용하는 인코딩 방식과 그에 대한 설명을 하시오
A. 완성형 인코딩을 사용합니다. 완성형 인코딩 방식은 글자 통째로 코드를 부여합니다.



Q. 인코딩과 디코딩을 설명
인코딩은 문자를 컴퓨터가 인식할 수 있는 0과 1로 이루어진 문자 코드로 코드화하는 것. 반대로 디코딩은 0과 1로 이루어진 문자코드를 문자로 해석하는 것.

Q. utf인코딩에서 뒤에 숫자가 붙는 이유는?
A. UTF 인코딩은 유니코드를 인코딩하는 방법입니다. 뒤에 숫자는 인코딩의 결과가 몇 바이트인지를 나타내는 것입니다. 숫자에 따라서 코드포인트 범위가 정해지며, 몇바이트로 인코딩할지가 결정됩니다.

Q. 요즘은 인코딩 방식을 많이 고려하지 않는 이유를 설명하세요

A. 메모리 공간이 많이 늘어났기 때문입니다.

728x90