컴퓨터의 회로로 이뤄져 있기 때문에 회로에 전류가 통하거나 또는 통하지 않을경우로 인식합니다.
그렇기 때문에 컴퓨터가 인식 할 수 있는 방식을 수로 대입하면 2진수로 표현을 할 수 있고 이를 활용하다 보니 2진수의 제곱 배수로 활용하는것이 일반적인게 되어 진 이유 입니다.
예를 들면 IP주소도 그렇습니다.
IP주소만 보아도 컴퓨터가 2진수와 얼마나 민첩한 관계가 있는지 아실수 있을겁니다.
언어를 프로그래밍하는거 보면 16진수를 많이들 사용하죠
그건 인간의 이해를 돕기 위함입니다.
만약 예를 들면 A,B,C를 2진수로 표현해보겠습니다.
01000001 , 01000010 , 01000011 순간 파악하기 힘드시죠..
10진수로 나타내면 좋겠지만 2진수를 10진수로 컴퓨터에게 이해 시키기는
그만큼 무리가 있는것이죠 왜 일까요?
2진수의 배수로 10진수가 안나오기때문이죠
2진수끼리 2자리면 4진수까지 가능하겠죠 하지만 4에 2진수를 더합치면
8진수 8진수에 2진수를 합하면 16진수 대충이해가 가시죠?
컴퓨터의 4비트 8비트 16비트 로 진화 한거랑 밀접한 관계라고 보시면 됩니다.
그런데 사람이 보기에는 8진수가 편할까요? 아니면 16진수가 편할까요?
사람마다 차이가 있겠지만 16진수가 보기는 편할거라 생각듭니다.
간단하게 2진수를 8진수와 16진수로 바꾸는 방법을 알아보겠습니다.
2진수를 8진수로 바꿔보겠습니다.
01000001 = 10진수로 65죠
8진수로 바꾸기 위해서는 2진수 3자리씩 자르면 됩니다.
01 000 001 이런식으로 잘라서 8진수로 계산하면 01=1 ,000=0 ,001=1
로 표현됩니다 그럼 이숫자를 나열하면 8진수가 되는거죠
왜 3자리씩 끈어서 풀이 할까요?
2진수의 한자리는 2진수이죠?
2진수의 두자리는 몇진수로 나타낼수있을까요?
2X2 4진수입니다. 그럼 2진수가 3자리 있으면 2X2X2 8진수 자리가 나오겠죠
그런식으로 나눠서 보기좋게 계산한겁니다.
16진수도 마찬가지입니다.
1=1 , 10=2 , 11=3 , 100=4 라는건아시죠?
그럼 8진수를 다시 2진수로 바꾸려면 어떻게 할까요?
101 한자리씩 2진수로 바꿔서 붙이면 됩니다.
에를들면 1=001 ,0=000 , 1=001 이 되겠죠?
그걸 순서대로 붙이면 2진수죠
간단하죠?
2진수를 16진수로 바꿔보겠습니다.
01000001을 16진수로 바꿀때는 2X2X2x2 4자리로 나눠야겠죠?
방법은8진수와 같습니다.
4=0100 ,1=0001 그러면 16진수로 41이 나오겠죠?
다시 2진수로 바꾸는거 역시 반대로 하시면됩니다.
01000001 으로 표현하는것보다 8진수인 101 이나 16진수인 41이 보기 편하죠?
Hex : 16진수 ( hexadecimal )
Dec : 10진수 ( decimal )
Oct : 8진수 ( octat )
Bin : 2진수 ( binary )
ip주소가 4octet으로 이루워져있다는 것에 의문을 가지시는분이 많을거라 생각 듭니다.
1 octet 는 8비트 255까지 나타낼수 있는 숫자를 뜻합니다.
2진수8자리로 이루워져 있는 ip 한자리가 바로 1octet를 뜻하죠
8비트 4자리로 이루워 져있기때문에 32bit로 이루워져 있다고 합니다.
그럼 1비트가 어떤의미일까요? 위의 글을 읽어보셨으면 아시겠다시피 컴퓨터는 2진수밖에 계산을 하지못합니다.
2진수로 나타낼수 있는 수가 바로 1비트입니다.
그럼 ip는 2진수 8자리로 이루워져 있으니 8비트라고 하죠
하지만 10진수로 나타낼수 있는 숫자는 255라는 숫자까지 표기가 가능합니다.
'컴퓨터 상식' 카테고리의 다른 글
위지위그, WYSIWYG (0) | 2017.05.24 |
---|---|
CDN이란? 콘텐츠 전송 네트워크(Content delivery network and content distribution network) (0) | 2017.05.22 |
GUI 환경 CUI 환경 (0) | 2010.12.10 |
Comments