티스토리 뷰

Table of Contents


이진수

거듭제곱

십진수

이진수

N자리의 이진수로 표현할 수 있는 숫자

이진수를 십진수로 변환하기

십진수를 이진수로 변환하기

비트 단위




1. 이진수


 0과 1을 저장하는 컴퓨터의 특성상, 프로그래밍에서 이진수에 대한 이해도는 필수적입니다. 물론 중학교 정규 수학 과정에서 이진수를 배우기 때문에 크게 문제될 건 없지만, 아직 이진수를 배우지 않았거나 잊어버린 분들을 위해 간단하게 설명을 하고 넘어가도록 하겠습니다. 이진수에 대해 이미 알고 있다면 '비트 단위'에 대한 부분으로 넘어가시는 걸 추천합니다.




1. 거듭제곱 (지수가 정수인 경우)


 이진수, 십진수 등 기수법을 알기 위해선 먼저 거듭제곱을 알아야 합니다. 거듭제곱은 하나의 수를 주어진 횟수만큼 곱하는 연산으로, 예를 들어, 2를 3번 곱하는 연산 을 거듭제곱으로 표현하면 아래와 같습니다.



 여기에서 거듭제곱할 수 2는 '밑', 곱할 횟수 3은 '지수'라고 부릅니다. 또한, 거듭제곱한 값을 읽을 때는 '밑'의 '지수'승 혹은 '밑'의 '지수'제곱 이라고 읽습니다. 즉,을 읽으면  '2의 3승' 혹은 '2의 3제곱'이 됩니다.


 예시 : ,  


 곱할 횟수인 '지수'가 자연수(양의 정수)라면, 단순히 곱하기를 여러 번 하는 것이기 때문에 간단합니다. 하지만 지수에 0이나 음수가 들어오는 경우도 있습니다.



 지수가 0인 경우, 밑과 상관없이 답은 1이 됩니다.


(ex )


 지수가 음수인 경우, 위와 같이 역수를 취하면 답을 얻을 수 있습니다.




2. 십진수


11
  여기서 소개하는 내용은 중학교 1 학년 재학시 배우게 됩니다만, 제 블로그를 방문하는 분들 중에 초등학생들도 적지 않게 있으리라 생각되어 간단한 수학적 밑거름을 제공해야 생각합니다.

  수학은 '복잡한 것을 단순히!' 라는 목적 하에 발전해 왔습니다. 이 것도 이러한 본분을 충실히 따른 것 입니다.
  우리는 곱하기 연산을 자주 사용합니다. 그 때 마다 이를 표현하기 위해 곱하기 기호를 사용해야 합니다. 예를 들어 아래 처럼 2 를 100 번 곱한 수를 생각해 봅시다.


(너무 길어서 약간 생략)

  우리는 위 수를 나타내고 싶을 때 마다 위와 같이 2 를 100 번이나 적는 '생쇼' 를 해야 합니다. 사실 이는 엄청난 종이 낭비이자 시간낭비에 틀림 없지요. 하지만 수학자들은 위를 단순화 하여 나타내기 위해 아래와 같은 놀라운 기호를 만들어 냈습니다.



  정말 훌륭한 생각 아닙니까? 단순히 2 를 100 번 곱했다는 사실을 알려주기 위해서 2 위에 작은 글씨로 100 을 적었습니다. 이 때 아래 '2' 를 '밑(base)' 라 부르고 밑 위에 밑을 몇 번 곱할 지 나타낸 수 100을 '지수(exponent)' 라고 부릅니다. 위 숫자의 경우 밑은 2 가 되고 지수는 100 이 되겠지요.

  아마 이해가 잘 안되면 아래와 같은 예를 보시면 됩니다.




 지수에서 가장 중요한 사실은 바로



라는 사실입니다. Number 에는 어떠한 수도 들어 갈 수 있습니다. (다만 0 제외) 아마 이 부분에서 의아해 하는 사람들이 많을 것 입니다. "어떻게 숫자를 한 번도 안 곱했더니 1 이 될수가 있냐! 수학자 바보들 아니냐!" 말이지요. 하지만 사실 이 값은 사실 수학자들 사에서 약속 처럼 정의한 값이라 생각하면 됩니다. 만일 이 값을 1 이라 하지 않는다면 여러 지수들에 관련된 중요한 법칙들이 성립 되지 않기 때문이죠. 다시말해 어떤 수의 0 승 한 것이 1 이라 생각하는 것은 다른 법칙들이 만족되기 위

출처: http://itguru.tistory.com/21 [Programming IT] 우리가 일상생활에서 십진법을 사용하며, 따라서 사용하는 숫자들은 대부분 십진수이다.

 우리는 평소에 숫자를 사용할 때, 십진수를 사용합니다. '전교 학생 수가 500명이다.', '도시락 가격이 4500원이다.' 등에서 쓰이는 500, 4500 같은 숫자들도 모두 십진수입니다. 여기에 십진수라는 이름이 붙은 이유는 1의 단위, 10의 단위, 100의 단위 이런 식으로 단위의 규모가 10배씩 증가하기 때문입니다.


 이 10배씩 증가한다는 특징과 거듭제곱을 이용하여, 십진수인 2017을 아래와 같이 분해할 수 있습니다.




 1000의 자리, 100의 자리, 10의 자리, 1의 자리로 분해하는 것입니다.


 이처럼 자릿수가 하나 증가하면 그 단위가 10배가 되는 것이 십진수입니다. 이때, 각 단위에 곱해지는 숫자는 0, 1, 2, .., 9, 총 10가지의 숫자만 써야 합니다. 10 이상이 되면 다음 단위로 넘어가기 때문입니다.




3. 이진수


 컴퓨터는 0과 1만으로 수를 구성하므로, 한 단위에 0부터 9까지의 숫자를 표현하는 십진수와는 잘 맞지 않습니다. 따라서 컴퓨터는 0, 1 두 가지 숫자로만 수를 표현하는 이진수를 사용합니다.


 기본적으로 이진수와 십진수의 규칙은 거의 같습니다. 다른 점은 단위가 10배가 아니라 2배씩 늘어난다는 것뿐이지요. 물론, 각 단위에 곱해지는 숫자는 0, 1 둘 중 하나가 되어야 합니다. 십진수에서 0~9의 숫자만 썼던 것과 같은 원리로, 2 이상이 되면 다음 단위로 넘어가기 때문입니다.


 이진수로 4자리 수인 숫자의 경우 각 단위는 1000의 자리, 100의 자리, 10의 자리, 1의 자리가 아니라 8의 자리, 4의 자리, 2의 자리, 1의 자리가 됩니다. 이를 통해 십진수 11을 이진수로 나타내면 다음과 같습니다.



 십진수 11 = 이진수 1011이 되는 것입니다. 끝에 붙인 아래 첨자 2는 이진수임을 나타내는 표시입니다. 아래 첨자 2가 없으면 십진수 1011 인지, 이진수 1011인지 구별할 수 없기 때문에 붙여줘야 합니다. (십진수는 일반적으로 많이 쓰이기 때문에 굳이 아래 첨자로 10을 붙이진 않습니다.)


 이진수 표현의 예시






4. N자리의 이진수로 표현할 수 있는 숫자


 이번엔 4자리의 이진수로 표현할 수 있는 숫자는 어디까지인지 알아보겠습니다. 4자리의 십진수로 표현할 수 있는 숫자는 9999까지, 즉 미만의 수입니다. 마찬가지로 4자리 이진수로 표현할 수 있는 숫자는미만의 수, 즉 16 미만의 수이므로 15까지 표현할 수 있습니다.임은 계산해 보면 알 수 있습니다.( 8+4+2+1 이기 때문이지요.) 이와 같은 원리로 N자리의 이진수로는미만의 수들을 표현하는 것이 가능합니다.


 이진수에 대한 기본 개념은 여기까지입니다. 이 아래에선 추가 설명으로 이진수를 십진수로, 그리고 십진수를 이진수로 변환하는 법을 소개합니다.




5. 이진수를 십진수로 변환하기


 한 번 을 십진수로 변환해 보겠습니다. 이진수의 단위는 1, 10, 100 이 아니라 1, 2, 4, 8, 16 이런 식으로 두 배씩 늘어납니다. 따라서 1과 0을 하나씩 분해하면 아래와 같이 변환할 수 있습니다.



  첫 번째로 쓰인 1이 16, 두 번째로 쓰인 1이 2, 세 번째로 쓰인 1이 1의 단위이므로 답은 19가 됩니다.


 이진수 -> 십진수 예시






6. 십진수를 이진수로 변환하기


 이제 반대로 십진수를 이진수로 변환하는 법입니다. 한 번 십진수 19를 이진수로 변환해 보겠습니다. 십진수가 0이 될 때까지 2로 나눠주는 연산을 계속해주면, 그 과정에서 이진수를 구할 수 있습니다.


, 나머지 = 1

, 나머지 = 1

, 나머지 = 0

, 나머지 = 0

, 나머지 = 1


 19를 0이 될 때까지 2로 계속 나눠주는 이 연산 과정에서 중요한 건 나머지들입니다. 여기에서 나온 나머지들을 마지막으로 구한 나머지부터 처음으로 구한 나머지까지, 역순으로 읽으면 신기하게도 19의 이진수가 나옵니다, 즉, 입니다.


 이렇게 되는 이유를 알기 위해서 먼저 1의 단위에 대해서만 생각해 보도록 하겠습니다. 먼저 19를 2로 나눈 나머지가 1이기 때문에 19는 홀수임을 알 수 있습니다. 그런데 이진법에서 2, 4, 8, 16 등 1의 단위를 제외한 단위들은 모두 짝수입니다. 짝수+짝수 = 짝수이고, 짝수끼리 아무리 더해도 짝수 밖에 나오지 않는다는 건 유명한 사실입니다. 즉, 만일 이진수에서 1의 단위에 써진 수가 0이라면 남은 단위가 짝수뿐이므로 아무리 더해도 짝수밖에 표현할 수 없게 됩니다. 따라서 홀수를 이진수로 표현하려면 1의 단위에는 1이 필수적으로 쓰여야만 합니다. 반대로 짝수를 이진수로 표현하려면 1의 단위에는 0이 필수적으로 쓰이게 되지요.


 그렇기 때문에 19를 2로 나눈 나머지인 1이 1의 단위에 쓰이는 것입니다.


 나머지 단위에 쓰인 수들도 비슷한 원리로 설명할 수 있습니다. 4의 배수들끼리 아무리 더해봐야 4의 배수밖에 나오지 않고, 8의 배수들끼리 아무리 더해봐야 8의 배수밖에 나오지 않기 때문입니다.


십진수 -> 이진수 예시


, 나머지 = 0

, 나머지 = 0

, 나머지 = 0

, 나머지 = 1




, 나머지 = 0

, 나머지 = 0

, 나머지 = 1

, 나머지 = 1





2. 비트 단위


 컴퓨터의 저장 공간인 메모리에는 0이나 1이 저장됩니다. 이러한 메모리의 용량을 표현하는 단위는 여러가지가 있는데 그 중 최소 단위를 비트(Bit)라고 합니다. 최소 단위라는 지위에 걸맞게 비트는 0이나 1, 즉, 2가지의 경우만을 표현할 수 있는 단위입니다. 그렇다면 N 비트의 저장 용량으로는 몇 가지의 경우를 표현할 수 있을까요? N자리의 이진수로는미만의 수를 표현할 수 있는 것과 같이, N비트의 저장 용랑도 개의 경우를 표현할 수 있습니다.


 메모리의 최소 단위는 비트이지만, 그 단위가 너무 작기 때문에 대개는 비트가 아닌 바이트로 정보를 관리하는 경우가 많습니다. 바이트(Byte)란 단위는 여덟 개의 비트를 묶은 단위입니다. 따라서 가지의 경우를 표현할 수 있습니다. 그러므로 0 ~ 255사이의 정수를 표현하고 싶다면 1 바이트의 용량으로 충분합니다.


 비트를 포함한 컴퓨터의 저장 용량 단위들은 아래 표에서 확인할 수 있습니다.


이름

1 단위를 비트로 환산

 1 단위를 바이트로 환산

 비트(bit)

1bit

-

 바이트(byte)

8 bit

1 byte

 킬로바이트(Kilobyte)

 8192 bit

 1024 byte

 메가바이트(Megabyte)

 8388608 bit

 1048576 byte

 기가바이트(Gigabyte)

 8589934592 bit

1073741824 byte

 테라바이트(Terabyte)

8.796093022×10¹² bit

 1.099511628×10¹² byte


킬로바이트부터는 단위가 하나 올라갈 때 마다 1024 배가 됩니다. 1024 =이므로 알아두면 좋습니다. 이후에 어림짐작 할 때,  = 1000이상,  = 100만 이상,  = 10억 이상으로 느낌을 잡을 수 있기 때문입니다.