일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- es6
- 이진검색
- 네트워크해킹
- 컴퓨터 논리와 구조
- 프로세서 속도와 심장 박동수
- ECMA설명
- ES차이
- 빗썸데이터
- 숫자구하기
- 아키네이처
- 자바스크립트표준
- 공개API
- 알고리즘 문제 풀이
- API요청
- es3
- CS스터디
- 아마존해킹
- 컴퓨터과학
- 퀵정렬
- 비전공자개발정리
- es6문법
- 줌서비스
- 트위터해킹
- 1일 1로그 100일 완성 IT지식
- 한국디도스
- HDD와 SSD의 차이
- 브라우저 작동원리
- ES5
- 주식스팸
- 데이터분석
- Today
- Total
개발일지
이진수와 바이트 그리고 십육진수란? 예시와 상대적인 단순성 본문
010, 비트 모아 데이터
이진수
일련의 비트가 주어졌을 때, 각 자리의 숫자들을 10 대신 2를 기수로 하는 자릿값으로 해석하면 어떤 수를 나타낼 수 있다.
십진수
10의 거듭제곱의 합을 줄여 표기한 것이다.
앞에서 신입생, 2학년 등을 위한 레이블이 00,01,10,11이 되는 것을 봤는데, 십진수로는 0,1,2,3의 값에 해당한다.
한 자리 더 늘려 보면 000,001,010,011,100,101,110,111이 되고 0부터 7까지의 값에 해당한다.
수 | 몫 | 나머지 |
1867 | 933 | 1 |
933 | 466 | 1 |
466 | 233 | 0 |
233 | 116 | 1 |
116 | 58 | 0 |
58 | 29 | 0 |
29 | 14 | 1 |
14 | 7 | 0 |
7 | 3 | 1 |
3 | 1 | 1 |
1 | 0 | 1 |
▲ 표, 십진수 1867을 이진수 11001001011로 변환하는 과정
이진수를 십진수로 변환하기는 쉽다. 비트가 1인 자릿값에 해당하는 2의 거듭제곱을 합산하기만 하면 된다. 십진수를 이진수로 변환하는 것은 더 까다롭지만, 아주 어렵지는 않다. 십진수를 2로 나누기를 반복하라. 나눌 때마다 0 또는 1이 되는 나머지 값을 적고, 몫은 다음 나누기를 위한 값으로 사용한다. 몫이 0이 될 때까지 나누기를 계속한다. 그러고 나서 나머지 값을 역순으로 나열하면 해당 십진수에 대한 이진수가 된다.
시간을 계산하는 과정과 비교해 볼 수 있다. 예를 들면, 95,440초를 일, 시, 분, 초 단위로 나누어 표시하는 과정과 유사하다. 먼저 초 값을 60으로 나누면 분 값을 구할 수 있다(몫은 분, 나머지 값은 초이므로 1590분 40초). 그 몫을 60으로 나누면 시 값을 구할 수 있다(26시간 30분 40초). 그 몫을 24로 나누면 일의 값을 구할 수 있다(1일 2시간 30분 40초). 시간을 변환할 때는 기수가 60과 24 두 가지라는 점이 다를 뿐, 이진수를 구하는 방법도 같은 원리이다.
바이트
모든 최신 컴퓨터에서 데이터 처리와 메모리 구성의 기본 단위는 8비트로, 이는 하나의 단위로 취급된다. 비트 여덟 개의 모음은 바이트(byte)라고 한다. 바이트는 IBM에 근무하던 컴퓨터 설계자인 베르너 부흐홀츠(Werner Buchholz)가 1956년에 만든 단어다.
단일 바이트로는 256개의 구별되는 값(2의8제곱, 0과 1 여덟개로 이루어진 모든 조합)을 인코딩할 수 있다. 인코딩된 값은 0과 255사이의 정수이거나, 7비트 아스키코드 문자 집합(1비트는 다른 용도로 남겨둔다) 중 하나의 문자이거나, 뭔가 다른 것일 수도 있다. 바이트 두 개는 총 16비트이며, 0에서 2의16제곱 - 1까지, 즉 65,535까지의 값을 나타낼 수 있다. 또한 유니코드 문자 집합에 있는 문자 한개를 나타낼 수 있다. 가령 '세계'를 나타내는 아래 두 유니코드 문자 중 하나를 나타낼 수 있는데, 각 문자가 2바이트다. 世界
바이트 네 개는 32비트로, 아스키코드 문자 네 개, 유니코드 문자 두 개, 또는 2의32제곱 -1, 즉 43억 개 정도까지의 수를 나타낼 수 있다. 일련의 바이트로 표현할 수 있는 정보의 종류에는 제한이 없다. 하지만 프로세서 자체에는 정보의 종류별로 몇 개의 특정 그룹들이 정의돼 있고, 각각의 그룹을 처리하기 위한 명령어가 따로 있다.
십육진수
0 | 0000 | 1 | 0001 | 2 | 0010 | 3 | 0011 |
4 | 0100 | 5 | 0101 | 6 | 0110 | 7 | 0111 |
8 | 1000 | 9 | 1001 | A | 1010 | B | 1011 |
C | 1100 | D | 1101 | E | 1110 | F | 1111 |
▲ 표, 십육진 숫자와 각 이진수 값 표
이와 같은 이진수는 십진수 형태보다 세 배 이상 길어서 너무 많은 공간을 차지하므로 십육진수(hexadecimal)라는 대안 표기법을 일반적으로 사용한다. 십육진수는 16을 기수로 사용하여 16개의 숫자로 표시한다. (십진수는 10개의 숫자, 이진수는 2개의 숫자)
= 0,...,9,A,B,C,D,E,F다.
프로그래머가 아니라면 십육진수를 볼 수 있는 곳은 많지 않다. 예를 들면 웹페이지의 색상에 십육진수가 사용된다. 컴퓨터에서 색상을 표현하는 가장 일반적인 방법은 각 픽셀에 3바이트를 사용하는 것으로, 각 바이트는 적색,녹색,청색의 양을 표현하는데 쓰인다. 이 방법을 RGB인코딩이라고 한다. 다 합치면 256x256x256개의 색상을 표현할 수 있는데, 상당히 많은 것 처럼 보인다.
짙은 적색 픽셀은 FF0000으로 표현되며, 십진수로 255인 적색 최댓값(FF), 녹색없음(00), 청색없음(00)으로 구성된다.
'윈도우 10홈 64비트' 처럼 이런 것은 무엇을 의미하는 것 일까?
십육진수는 이더넷 주소에서도 볼 수 있고, '웹'에서 쓰이는 URL에서 특수 문자를 표현하는 데도 사용된다.
컴퓨터는 내부적으로 데이터를 다양한 크기의 덩어리 단위로 조작한다. 이런 덩어리는 수와 주소를 포함하며, 수로는 32비트와 64비트가 편리하게 사용되고 주소는 수와 주소를 포함하며, 수로는 32비트와 64비트가 편리하게 사용되고 주소는 메모리상에 있는 정보의 위치다. 여기서 관련된 것은 후자인 주소 속성이다. 30년 전에 16비트 주소 체계에서 32비트 주소 체계로 이행이 이루어졌는데,
32비트면 최대 4GB 메모리에 접근하기에 충분한 크기다. *'2의 거듭제곱과 10의 거듭제곱 관계*
지금은 범용 컴퓨터에서 32비트에서 64비트로 이행이 거의 완료 됐다. 64비트에서 128비트로의 이행잉 언제 일어날지 예측해 보지는 않았지만 한동안은 이대로 괜찮을 것이다.
비트와 바이트에 대한 논의에서 기억해야 할 가장 중요한 사실은 비트 모음의 의미가 상황에 따라 결정된다는 것이다. 그저 보이는 것만 가지고 비트가 무엇을 의미하는지 식별할 수는 없을뿐더러 맥락에 따라 전화번호가 될 수도, 어떤 프로그램의 데이터는 다른 프로그램의 명령어가 되기도 한다.
011, 요약
컴퓨터는 왜 십진수 대신 이진수를 사용할까?
물리적인 장치를 만들 때 켜짐과 꺼짐이라는 두가지 상태만 갖도록 하는 것이 열가지 상태 보다 훨씬 쉽기 때문이다.
이러한 상대적인 단순성은많은 기술에서 활용되고 있다. 예를 들면, 전류(흐름/안흐름). 전압(높음/낮음) 등이 있다.
폰 노이만은 이 점을 명확히 인식했고, 1964년 논문에서 다음과 같이 이야기 했다. "우리가 설계한 시스템에서 기억의 기본 단위는 자연스럽게 이진 체계로 맞춰져 있다. 우리가 전하량의 연속적인 변화를 측정하려고 하지 않기 때문이다."
왜 이진수를 이해하고 관심 가져야 할까?
한 가지 이유는 익숙하지 않은 기수로 이루어진 수를 사용해 보는 것이 친숙한 십진수의 작동 원리를 더 잘 이해하는데 도움을 주기 때문이다. 이는 일종의 수리추론(quantitative rea - soning)에 해당한다. 더 나아가서 비트의 개수는 필요한 공간, 시간, 또는 복잡도와 일정하게 연관되어 있으므로, 이진수는 또한 중요하다. 게다가 근본적으로 컴퓨터는 이해할 가치가 있고, 이진수와 이진 연산은 컴퓨터의 작동에서 핵심 개념이다.
이진수를 사용함으로써 컴퓨터가 효율을 위한 단순성을 알아봤다
우리도 다 똑같다 단순해야 빠릿빠릿하게 잘 돌아갈 수 있고 일상엔 이미 적용되어 있다.
컴퓨터의 효율에 대한 고민을 이진수로 풀어냈다.
'책) 1일 1로그 100일 지식완성 IT지식' 카테고리의 다른 글
가상 운영체제와 가상머신 그리고 일하는 법! (0) | 2022.06.08 |
---|---|
10억 개 전화번호에서 이름찾기 이진검색과 퀵 정렬로 검색을 쉽게 만들기 (0) | 2022.05.30 |
뉴스에서 한번 씩은 봤던 보이스피싱, 스팸메일과 랜섬웨어, 디도스 등 해킹에 관한 설명 (0) | 2022.05.21 |
비트와 이진수 / 2의 거듭제곱과 10의 거듭제곱 (킬로,메가,기가,테라,페타) (0) | 2022.05.20 |
컴퓨터 정보 표현방식 / 아날로그 정보를 디지털로 바꾸기 (사진, 음향, 영화, 텍스트) (0) | 2022.05.19 |