{ '1일 1로그 100일 완성 IT지식 = [하드웨어 10번] 비트 모아 데이터' };
[이진수]
어떤 비트가 주어졌을 때,
각 자릿수를 10단위가 아닌 2단위로 해석해 표기한 수.
11101 이라는 이진수는 16+8+4+0+1 = 29 이다.
(1*2^4) + (1*2^3) + (1*2^2) + (0*2^1) + (1*2^0)
(1*16) + (1*8) + (1*4) + (0*2) + (1*1)
16 + 8 + 4 + 0 + 1
=29
[십진수를 이진수로]
십진수를 2로 나누는 것을 반복한다. 그 나머지가 0 또는 1이 되는 것을 순차적으로 기록하면 그 수가 십진수의 이진수가 된다.
[바이트]
컴퓨터가 처리하는 데이터와 메모리 구성은 8비트를 기본단위로 이는 하나의 단위로 취급된다.
비트 8개는 하나의 바이트byte 가 된다.
2바이트는 16비트이며 숫자로는 0부터 2^16-1(65,535) 까지 표현할 수 있는 범위다.
바이트로 문자로 나타낼 수 있다. 예로 世界(세계) 라는 유니코드 문자를 표현할 수 있다. 이 문자는 2바이트다.
4바이트는 32비트로 아스키코드 문자 4개(ㅁ한자,ㅍ한자), 유니코드 문자 2개 또는 2^32-1 (43억) 개의 숫자를 나타낼 수 있다.
+ 아스키코드와 유니코드
결국 컴퓨터 언어는 숫자이다.
프로그램이나 컴퓨터와 통신하려면 컴퓨터에서 문자와 기호가 해당 숫자 표현으로 변환될 필요가 생겼다. 이 필요성에 따라 1960년대에 아스키코드(ASCII)가 개발되었다.
ASCII는 0x00부터 0x7F까지의 총 127개 문자(제어 문자, 특수 문자, 숫자, 알파벳 등)로 이루어져 있다.
시간이 지나가면서 영어나 숫자 그리고 기본적인 기호뿐만 아니라 그 나라, 그 언어에서 쓰는 다양한 문자들을 처리하려면 1바이트로 정의된 아스키 코드를 확장할 필요가 있게 되었다. 유니코드는 이런 아스키코드의 한계성을 해소할 수 있는 체계로 만들어진 코드이다.각 나라별 언어를 모두 표현하기 위해 나온 코드 체계가 유니코드(Unicode)이다. 유니코드는 사용중인 운영체제, 프로그램, 언어에 관계없이 문자마다 고유한 코드 값을 제공하는 새로운 개념의 코드이다. 언어와 상관없이 모든 문자를 16비트로 표현하므로 최대 65,536자까지 표현할 수 있다.유니코드 인코딩 방식으로는 UTF-7, UTF-8, UTF-16, UTF-32 인코딩 등이 있다.
[십육진수]
이진수는 십진수 형태보다 3배 이상 길어서 너무 많은 공간을 차지한다.
16진수는 대안 표기법이다.
컴퓨터에서 색상을 표현하는 가장 일반적인 방법은 각 픽셀에 3바이트를 사용하는 것이다.
각 바이트는 Red Green Blue 의 양을 표현하는데 쓰고 이를 RGB 인코딩 이라고 한다.
HTML에서 색상을 표현할 떄도 RGB의 밝기를를 256단계로 나누어 사용한다. (16*10^6 = 1천 6백만 색상)
16진수는 이더넷 주소에도 사용되고, 웹에 쓰이는 URL 에서 특수문자를 표현할 때도 사용된다.
윈도우 Os를 보면 x32비트 와 x64비트 가 있다.
이는 해당 버전의 Os가 32^2 만큼, 64^2 만큼의 데이터 양을 전달할 수 있다는 뜻이다.
컴퓨터의 데이터 전송량이 증가하면 컴퓨터의 데이터 처리 속도가 빠르다는 것을 의미한다.
데이터 처리 속도가 빠른 이유는 32비트는 램(RAM)을 4기가 까지만 꽂을 수 있기 때문이다.
컴퓨터가 내부적으로 데이터를 조작할 때 크고 작은 덩어리로 구분하는데,
이 덩어리에는 수(숫자)와 주소가 포함돼있다. 여기서 주소는 메모리상의 정보의 위치다.
이 주소를 표현하는 데 이제까지는 4기가 메모리로 32비트를 표현하는 데 충분했다.
30년 전 16비트에서 32비트로 주소체계 이행이 이뤄졌는데 현재는 32비트에서 64비트로의 이행이 거의 완료되었다.
맥Os의 경우 2019년 말에 발표한 카탈리나(Catalina)부터 32비트 프로그램을 지원하지 않는다.