컴퓨터 공학 기초) 2진수

Dec 11, 2023
컴퓨터 공학 기초) 2진수

추가 : 전자


전자 : -극 ↔ 양성자 : +극
💡
전자와 양성자는 서로 끌어당기는 힘이 있음
 
서로 끌어당기는 힘에 의해 전자의 위치가 바뀜 → 전자의 이동 = 전류가 흐름 전기선에서 전류가 흐름
전류가 흐를 수 있고 흐르지 않을 수도 있음
notion image

도체 : 전류가 흐름 → 1
흐르기만 하면 제어가 안됨
부도체 : 전류가 흐르지 않음 → 0
반도체(=트리거) : 전류가 흐르기도 하고 흐르지 않기도 함
반도체를 통한 2진수 처리가 가능해짐
 
💡
반도체는 온도에 의존성이 있음
온도가 상승 → 전류가 흐르지 않음
온도가 하강 → 전류가 흐름
⇒ 온도로 제어 가능
 

2 진수

notion image
 
notion image
전류가 들어오면 1
전류가 들어오지 않으면 0
 
예시) 기계를 작동할때 전류가 들어오면 1로 작동
전류가 들어오지 않으면 0으로 작동하지 않음
 
💡
2진수는 0,1 → 2가지 경우의 수를 표현
박스 1개는 컴퓨터에서 사용하는 가장 작은 단위 : bit
notion image
notion image
예시) 선풍기
1 bit : 경우의 수 2개 ⇒ 0 : 끄기, 1 : 켜기
2 bit : 경우의 수 4개
notion image
3 bit : 경우의 수 8개
notion image
 
notion image
3 bit의 명령어를 표에 다 적어놓고 동료들과 나누고 나가서 전쟁을 하는 경우
0 : 기지에 대기
1 : 태평양으로 전진
…..
번호에 따른 action 만들기
 
** 프로토콜: 동등한 약속
 
8 bit : 경우의 수 256개
notion image
 

정리

— bit를 늘리면 경우의 수가 늘어남
— 아무리 많은 bit가 있더라도 모든 경우의 수를 다 담을 수 없음
— 8 bit 단위로 전송하기 시작함
 
** 8 bit 체제 : 문자 1개를 표현할 수 있음
여러 번 통신하면 문장이 됨/ 모든 경우의 수를 다 담을 수 있음
** 8 Byte = 8 bit : 논리적인 단위
** 데이터를 담을 수 있는 임시 저장 장치가 필요해짐
 

왜 8 bit 체계인지?


통신의 시작

세계 대전 때)
A,B 나라가 한편이 되어 C 나라와 전쟁을 하는데 A,B가 서로 너무 멀리 있어 통신을 해야 함
이때 통신(전자의 이동)을 해서 0,1로 데이터를 표현하고 인간이 받아서 분석을 해야 함
예시) 모스부호
컴퓨터가 전류에 흘러들어오는 2진수를 받아서 인간이 이해할 수 있는 부호로 변경이 필요
부호화 = 문자 인코딩 : 인간이 이해할 수 있는 부호로 변경하는 것
 
통신이 유럽에서 먼저 시작
영어 문자를 이해하기 위해 bit가 최소 몇 개 있어야 표현할 수 있는지 알아보니 총 8bit = 256개
8bit : 알파벳 50~60 개, 특수기호, 숫자, 오류 검출 등의 최소 bit
→ 영어 하나의 문자 표현 가능
1Byte (논리적인 개념) : 인간이 이해할 수 있는 최소 단위
 
아스키코드표
2진수로 받은 수를 아스키코드 표와 비교(매핑)을 해서 문자를 확인함
문자들이 모이면 하나의 단어가 되어 인간이 이해할 수 있음

8 bit = 1 Byte 단위로 데이터를 저장함


인간이 이해할 수 있는 단위로 통신(전류)이 들어옴
8 bit씩 끊어서 읽어야 영어 한문자를 읽을 수 있는 상태로 메모리에 저장됨
1Byte씩 저장하는게 인간이 이해하기 가장 좋음
💡
8 bit 단위인 이유?
유럽권에서 발전했기 때문에

 
💡
아스키코드 표 : 전세계적으로 공유가 됨, 해독이 쉬움
notion image

아스키코드의 한계


유럽권에서 시작해서 통신이 전세계적으로 이루어지고 있음
한계 : 1Byte로는 모든 언어를 표현할 수 없음
한국 : 2Byte : 65536
중국 : 3Byte 이상 : 16777216
 
유니코드 : 아스키코드의 한계로 탄생한 표준 코드
 
한국) Euc-KR : 2Byte ⇒ CP949
💡
발전했다는건 더 많은 코드를 저장할 수 있는 테이블
 
인터넷의 발전 > 세계화 > UTF-8 : 3Byte
💡
UTF-8 : 전세계에 깨지지 않게 보여주기 위한 코드표
UTF-8mb4 : 4Byte 이모지 표현 가능

 
데이터를 전송할 때 아스키코드로 문자를 인코딩할 것인지 다른 표현방식으로 인코딩할 것인지 설정을 해야 함
💡
Why?
통신으로 다른 곳에 보내기 직전에 정해야 상대편이 변환해서 볼 수 있음
** 인코딩(Encoding) : 정보의 형태나 형식을 변환하는 처리 방식
** 디코딩(Decoding) : 인코딩의 반대, 역코드화

인코딩과 디코딩 순서


Java에서 아스키코드라고 걸어서
JVM에게 전달> OS> 인코딩> HW ⇒ 디코딩> 상대방 HW> OS
notion image

 
Share article

vosw1