바이너리와 2진수 (binary)
바이너리(binary)는 기본적으로 두 조각, 두 부분을 의미하며, 다음의 의미로도 쓰인다.
- 바이너리는 0과 1, 두 숫자로만 이루어진 이진법(二進法)을 의미한다.
- 컴퓨터에서 정보는 이진 형태로 저장되며, 바이너리는 이진 파일을 의미한다.
출처 : 위키백과
라는 사실을 먼저 알고 시작하겠 습니다^^;;
컴퓨터는 일반적으로 0과 1을 고속으로 처리하는 장치입니다 여기까지 이해가 되었다면 당신은 반쯤 성공한 것이지요^^
그렇다면 실제로 물리적으로 어떻게 처리 되는지에 대해서 이야기 해보도록 하겠습니다.
우리가알고 있는 RAM은 한줄로 쭈욱 나열된 공간입니다.
제 손으로 그린 그림은 설명을 위한 것이니 참조만하세요^^
일단 저렇게 된 것이 메모리 구조입니다. 저렇게 검은 반도체 안에 무수히 많은 공간이 있습니다.
이공간은 전기가 들어와 도체 상체가 되거나 혹은 전기가 빠저나가 부도체 상체가 됩니다. 앞서 말했듯이
컴퓨터는 1과 0밖에 모릅니다. 그렇다면 0과 1을 어떻게 구문 짖게 되냐면 저 무수히 많은 공간에 전기가 들어가면
바로 1이 됩니다. 그리고 전기가 빠저 나가면 부도체 상태가 되고 이것이 바로 0이 되는것이지요.~
여기서 다시 의문점이 생깁니다. 그렇다면 CPU는 전기가 들어왔다 나갔다를 반복적으로 처리하는것인가요?? 하는
의문이 생기겠죠 ~ ;;; 하지만 아니에요 CPU는 단순하게 전기적 파동입니다...;; 너무 멀리왔다... 나중에 CPU에 대해서 디테일하게 설명
하겠습니다 포커스를 다시 램으로 !!!!
그래서 연산이 되거나 연산된 결과를 다시 램으로 이동하게됩니다. 그렇다면 하드 디스크는 왜 존재 할까라는 의문과 함께 예전에 공부한
워드나 머 기타 등등 컴퓨터관련 공부 했던 분들이 생각합니다.. 분명 저장된것은 하드가 많은데 왜 보조 장치 일까 그리고 왜 램은 공간도
작고 휘발성인데 어찌하여 주기억 장치가될가 란 의문이 생기기 마련입니다.
그래서 그 의문을 오늘 시원하게 풀어 보겠습니다. 바로 램을 주로 사용하기 때문입니다.
컴퓨터 연산을 하기 위해서는 데이터는 램에 상주하게됩니다. 이런 데이터를 램과 CPU를 오가며 고속으로 처리 하는것이죠
그렇다면 보조장치가되는 하드는 무엇일까요?? 내 그렇습니다 당장 사용하지 않고 일단 저장하고 연산이 필요하지 않을 때 부족한 램의
공간을 대처하기 위해서 사용되는것입니다. 따라서 보조적 역활을 수행해서 보조 기억 장치가 되는 것입니다.
그런데 어떤분들은 이런 의문을 했을것같아요... 운영체제도 내.. 야동도.. 다 하드있는데 먼가 아닌것같아 라는 의문을 가지시는 분들이 계
실 것같아서 이야기를 더하면 일단 컴퓨터가 전기가 들어와 시동하게 되면 메인보드에 전기가 공급되고 그래픽 카드혹은 그래픽 모듈을
검사하고 각종 시스템을 검사하게됩니다. 검사 절차가 끝나면 바로 하드에 들어 있는 운영체제의 데이터를 램으로 상주 하는 작업을 진행
합니다.(예전에 xp 쓸때 지렁이 한마리 두마리 세마리 이작업이 그작업입니다 ㅎ)
그래서 램에 상주하는 운영체제의 데이터를 토대로 컴퓨터는 각종 작업을 수행하게됩니다.
참 쉽죠?^^;;;
이렇게 공간들속에 더작은 미세한 공간이 있는데 이공간이 바로 자료와 자료를 구분 짖는 벽이됩니다. 이미세한 공간에 전류가 흐르게되면
논리적 절삭이 이뤄 젔다고 합니다. 그래서 우리가 일고있는 자료형 변수 int라든지 char를 구분 짖게됩니다.
그렇다면 int 와 char는 어떻게 공간을 차지 할까요???
아래부분은 집중해서 읽고 이해해야합니다.~
0과 1을 표현하는 공간 하를 1bit라고 합니다.
1byte는 8bit가 이뤄진 집합니다.
1kb 는 1024byte : kb(킬로 바이트)
1mb는 1024kb : mb(메가 바이트)
1gb는 1024mb : gb(기가 바이트)
1tb는 1024gb : tb(테라 바이트)
1pb는 1024tb : pb(페타 바이트)
입니다.
그렇다면 왜 저렇게 1024로 되는걸가요 그것은 이의 제곱 식을 쓰기 때문입니다. 전기는 두가지 극 어쩌고 저쩌고 하는데 여까지만 딱여까
지만 더 깊이 파고들면 머리아풔요ㅠㅠ
그래서 2의 제곱식으로 1000이 나오지 않기 때문에 1024 즉 2의 10제곱을 쓰게됩니다.
그래서 윈도우 포맷할 때 나는 분명 500gb 하드를 250gb씩 나눌려고 250,000로 나눴다가 실패 하는 이유가 여기있습니다^^~
그렇다면 반띵(절반) 하려면 어떻게 해야 될가요??
실재 포맷 할때 표기된 수치를 메가로 환산 한 다음 나누기 2해서 그수치 해주면 됩니다~ ㅎㅎㅎ
본론으로 돌아가 ~
char자료형은 1byte 를 사용합니다.
1byte 는 다시 말해 8bit입니다.
8bit 로 표현 할수 있는 수는 몇가지 될까요?
2의 8승 해주면 바로 256입니다. 그래서 char가 표현 가능한 숫자는 -128~127 입니다.~ 숫자 0을 포함 해서요~~ ㅎㅎ
그래서 0~ 255까지 256 숫자가 나옵니다.
오늘은 여까지~ 퇴근안하고 회사에 앉아서 잠깐 머리 식힐겸해서 정리 해봅니다^^
공부 하시는 분들에게 도움이 되길 바랍니다.