1일 1로그 100일 완성 IT지식 log(10) -비트모아 데이터

Jobmania·2022년 7월 24일
0

1일 1로그 IT지식

목록 보기
6/16

이진수

덧셈 예시)

곱셈 예시) 10 x 12 = 120 //

바이트

  • 메모리의 기본 구성단위로 8비트로 구성되어 있음.
    1바이트는 8비트, 총 256개의 문자

아스키코드(ASCII) : 1963년 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계

🧨1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문이다. Parity Bit라고 해서, 7개의 비트 중 1의 개수가 홀수면 1, 짝수면 0으로 하는 식의 패리티 비트를 붙여서, 전송 도중 신호가 변질된 것을 수신측에서 검출해낼 수 있도록 하였음.
(출처-나무위키)

유니코드(Unicode) : 전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식.

현재의 유니코드는 지구상에서 통용되는 대부분의 문자들을 담고 있다. 여기에는 언어를 표기할 때 쓰는 문자는 물론, 악보 기호, 이모지, 태그, 마작이나 도미노 기호 같은 것들도 포함

🧨처음에는 1 바이트의 남은 공간에 각 나라가 자국 문자를 할당. 하지만 이런 상황에서 다른 국가에 이메일을 보냈더니 글자가 와장창 깨짐! 그리하여 국제적으로 전세계 언어를 모두 표시할 수 있는 표준코드를 만들기로 했다. 바로 유니코드(Unicode)다. 이에 따라 2~3바이트의 넉넉한 공간에 세상의 모든 문자를 할당!

!!! 유니코드에서 한글은 한자(88,884개) 다음으로 많은 코드를 차지하고 있는 문자

인코딩(encoding) : 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것

UTF-8: 유니코드를 인코딩(encoding)하는 방식으로 가장 많이 사용되는 '''가변 길이 유니코드'''

UTF-8은 8bit 8의미는 8비트 1바이트를 기준으로 인코딩한다는 의미

유니코드 한 문자를 나타내기 위해 1byte~4byte까지를 사용,
일반적인 문자는 3byte 내로 처리되며 4byte 영역에는 이모티콘 같은 문자가 존재

글자마다 byte 길이가 다르다는 것. ‘a’는 1 byte이고 ‘가'는 3 byte

  • UTF-8로 변환한 유니코드 문자의 용량
    1BYTE = 아스키 코드의 127개의 문자
    2BYTE = 라틴어, 음성기호, 조정문자, 결합문자등 1920개의 문자
    3BYTE = 유니코드 대부분의 문자들 6만여개가 포함

🧨장점 :

  • 1 바이트 영역은 아스키 코드와 하위 호환성을 가지며 아스키 코드의 0~127까지는 UTF-8로 완전히 동일하게 기록됨.
  • 간단한 인코딩 변환 및 빠른 인코딩
  • 바이트 검색 알고리즘 이용
  • 바이트 경계 파악 쉬움

📙이런 장점으로 인해 인터넷 사이트에서 가장 많이 쓰이는 인코딩이다. (출처-나무위키)

출처 - https://jeongdowon.medium.com/unicode%EC%99%80-utf-8-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-b6aa3f7edf96
https://namu.wiki/w/UTF-8

16진수

16진수 -> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15)

  • 예시
    사람:76(10진수)
    기계:01001100(2진수)
    16진법: 0x4C (16진수) ( 0x는 16진수로 숫자를 표현함을 의미)

사용 이유 : 2진수로 수를 표현할 때 너무 길어지기 때문에 이를 줄이기 위해 16진수를 사용한다. 전자 기기, 특히 컴퓨터에서 사용하는 이유는 자릿수 2개를 사용하면 2의 8승을 표현할 수 있는데, 2의 8승은 곧 1바이트이다.

간단히 1바이트의 값을 2진법을 사용해서 0101 1111 식으로 표기할 게 아니라 그냥 16진법으로 5F16라고 표기해 버리면 많이 축약할 수 있다. 게다가 훈련이 된 상황이라면 16진법의 숫자만 보고도 바로 2진법 수로 변환이 가능하기 때문에 상당히 유용한 표현 방법이다.

  • 예시

16진수 > 2진수
25FB16
0010(2) 0101(5) 1111(F) 1011(B)처럼 끊어서 변환한 다음 전부 붙여주고 앞의 00을 떼준 뒤 10010111111011로 적으면 된다.

반대로 2진법을 16진법으로 바로 변환하려면 1의 자리에서부터 4개씩 끊어서 16진법으로 변환해주면 된다.

CPU의 32비트와 64비트란?

32비트 및 64비트라는 용어는 컴퓨터의 프로세서(CPU라고도 함)가 정보를 처리하는 방식을 가리킨다.

비트라는 것은 cpu가 처리하는 데이터의 최소 단위인 레지스터의 크기가 몇 비트인지에서 나온말이다.

🧨 즉 레지스터의 크기가 32비트 64비트라는 것이다.

데이터를 처리할 때 CPU를 통해 처리를 하는데, 매 번 메모리에서 처리를 할 때 마다 데이터를 가져오게 되면 시간 낭비가 생기게 되어 지연이 생긴다.

✨ 레지스터의 역할 : 메모리에 대한 주소 및 명령을 저장

CPU 내부에 임시 기억장치인 레지스터를 두어 메모리에서 데이터를 가져와서 저장하고 필요할때마다 불러와서 처리를 한다.

임시 기억장치이기 때문에 이 레지스터 또한 용량을 가지고 있다. (32bit 64bit)

물론 레지스터의 용량이 클 수록 메모리에서 더 많은 데이터를 가져와 저장할 수 있기 때문에 처리 속도도 더 빨라지게 된다.

32비트 기준으로 2^32비트->4,294,967,296개의 숫자를 표현할 수 있고 4,294,967,296개의 메모리 주소를 저장할수 있다.

(메모리의 주소값의 단위는 1바이트(8비트)이므로 총 4,294,967,296바이트 메모리 주소를 가리킬 수 있다. )
4,294,967,296바이트 = 4,194,304KB = 4,096MB = 4GB이다.

그래서
따라서 32비트 레지스터로는 램에서 한번에 표현할 수 있는 메모리의 크기가 4GB이다. (따라서 32비트CPU에서는 4GB램까지가 한계이다.)

64bit의 RAM은 192GB램까지 가능하다.

출처

profile
HelloWorld에서 RealWorld로

0개의 댓글