티스토리 뷰
컴퓨터가 이해하는 가장 작은 정보단위 : 비트(bit)
비트: 0과 1을 표현하는 가장 작은 정보 단위
n비트로 2ⁿ 가지의 정보 표현 가능하다
현재 비트보다 더 큰 단위를 사용함(바이트, 킬로바이트, 메가바이트,기가바이트,테라바이트 등)

| 1바이트(1byte) | 8비트(bit) |
| 1킬로바이트(1kb) | 1000바이트(1,000byte) |
| 1메가바이트(1MB) | 1,000킬로바이트(1,000kB) |
| 1기가바이트(1GB) | 1,000메가바이트(1,000MB) |
| 1테라바이트(1TB) | 1,000기가바이트(1,000GB) |
예전에는 단위가 작아서 혼용해서 사용했지만 지금 사용하는 정보단위가 크기때문에 정확하게 나뉘어서 1024개씩 묶은 단위는 kiB,MiB,GiB... 가 따로 있다.
워드(word)
CPU가 한번에 처리할수 있는 정보의 크기 단위
예를 들어서 CPU가 한번에 처리할수있는 양이 32bit이면 1word =32bit입니다
파생된 단위
half-word: 워드의 절반크기
full-word: 워드 크기
double-word: 워드의 두배 크기
이진법(binary)
0과 1로 수를 표현하는 방법
숫자가 1을 넘어가는 시점에 자리올림
우리가 일상적으로 사용하는 진법은 숫자가 9를 넘어갈 때 자리올림하는 십진법을 사용함
| 십진수 | 이진수 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
이진수 8를 표기하는 방법 : 1000(2) / ob1000
0과 1로 음수 표현하기 : 2의 보수
정의: 어떤수를 그보다 큰 2ⁿ 에서 뺸 값
쉽게 이해하기위해서 모든 0과 1을 뒤집고 1더한 값
아래그림은 왼쪽은 음수로 표현하고 오른쪽은 다시 원래 값으로 돌아가는걸 보여줌

1011(2)음수를 표현하기 위한 0101(2) 과 십진수 5를 표현한 0101(2)은 똑같이 생겼는데 어떻게 구분하나요?
-겉모습 보면 구분이 안되지만 CPU내부에는 플래그(flag)레지스터가 있는데 이것이 양수/음수를 표기해줌
모든 숫자가 양수/음수를 표식을 들고 다니기때문에 헷갈릴 일은 없다라고 보면됨.
16진법
이진법으로는 숫자의 길이가 너무 길어진다: 10진수 32== 2진수 100000
이진법을 16진법으로 변환하기 쉽기때문에 컴퓨터의 데이터를 표현할때 16진법도 많이 사용
수가 15를 넘어가는 시점에 자리올림

16진법에 A~F이해하기 쉬운방법
손을 가지고 이해를 해볼텐데 주먹을 쥔 상태를 A, 그리고 손가락하나만 폈으면 B, 손가락 2개 C, 손가락 3개 D,
손가락 4개 E, 손가락 5개면 F 라고 생각하시면 이해하기 편하다!
16진법 15표기 15(16) 수학적 표기 방식
0x15 코드상 표기 방식
코드에 많이 사용
이진수 -> 16진수 변환

16진수 -> 이진수

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

아스키코드 (2의 7승 = 128개)
초창기 문자 집합 중 하나
알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자 + 한글을 포함한 다른 언어 문자, 다양한 특수 문자표현 불가
7비트로 하나의 문자 표현
실제로 8비트중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)
-code point= 문자에 부여된 값

패리티 비트(parity bit): 전송 도중 신호가 변질 된것을 검출
한글 인코딩: 완성형 VS 조합형 인코딩
알파벳을 이어 쓰면 단어가 되는 영어가 있지만 한글은 초성 ,중성, 종성의 조합으로 이루어진 한글
한글을 위한 인코딩이 방식이 필요함 그래서 탄생하게 된 완성형 과 조합형 인코딩 방식
완성형 : 김 + 영 + 식
조합형: ㄱ + ㅣ+ ㅁ+ ㅇ+ㅕ+ㅇ+ㅅ+ㅣ+ㄱ
EUC-KR
완성형 인코딩
글자 하나 하나에 2바이트 크기의 코드 부여
2바이트== 16비트 == 4자리 16진수로 표현
2300여개의 한글 표현가능하지만 여전히 한글을 표현하기에는 부족한 수
언어별 인코딩 방식을 모두 이해해야한다.

핸드폰 명의, 은행 ,의료보험, 국가 장학금 까지 온라인상에서 EUC-KR 표현하지못하는 특이한 이름을 가지고 있어서 불편함을 겪는 사람들도 있습니다 .
EUC-KR을 단점을 보완한 유니코드 문자 집합과 UTF-8
유니코드
통일된 문자 집합
한글, 영어 , 화살표와 같은 특수 문자, 심지어 이모티콘까지
현대 문자 표현에 있어 매우 중요함
유니코드의 인코딩 방식
utf-8, utf-16,utf-32
https://unicode-table.com/kr/ 을 통해서 유니코드 확인할 수있다.
UTF-8(Unicode Transformation Format) ->유니코드 인코딩 방법
가변길이 인코딩: 인코딩 결과 1바이트~4바이트
인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다름



출처: 혼자 공부하는 컴퓨터 구조와 운영체제 ,한빛미디어, 강민철
- Total
- Today
- Yesterday
- 빌드 오류 #java버전오류
- 국비지원
- 알고리즘 복잡도 #알고리즘 공부 #이것이코딩테스트다 #이코테 #나동빈
- 자료구조 #CS공부
- HTTP #메타코딩
- 내일배움카드
- Spring Boot 공부
- spring #springboot #스프링부트공부 #스프링부트실습 #메타코딩유튜브
- JSON
- 자료구조
- git 개념 #spring전 git #간단한 개념만
- JSON에 대해서 알아보기
- 국비지원교육
- 스프링 # 스프링부트 #서버와클라이언트 # 공부기록
- 패스트캠퍼스
- 개발자취업부트캠프
- application.yml 설정
- MegabyteSchool
- JSON #json #개발자필수지식
- mysql #인텔리제이랑 연결 #다시설치 및 재실행
- 메가바이트스쿨
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |