inblog logo
|
Coding_study

    프로그래밍 기초) 2진수

    yuzu sim's avatar
    yuzu sim
    Dec 11, 2023
    프로그래밍 기초) 2진수
    Contents
    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

    Coding_study

    RSS·Powered by Inblog