ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터가 수를 다루는 방식
    알라딘 코딩 2025. 3. 8. 12:20

    컴퓨터는 전자기기 입니다. 

    계산도 빨리 하고, 여러가지 복잡한 일을 하지만 결국은 전자기기입니다. 

    컴퓨터는 전자기기이기에 수를 다루는 방법은 전자적인 처리를 합니다. 

     

    전자적인 처리라고 하니 복잡할 것 같지만, 단순합니다. 껴졌다와 꺼졌다의 두가지로만 모든 정보를 

    관리합니다. 

     

    집에 있는 전등이 딱 두가기 상태 켜짐, 꺼짐의 상태를 가지는 것과 같습니다.

    이 켜짐과 꺼짐으로 많은 수를 처리하고 계산을 합니다. 

    대신 컴퓨터안에는 아주~~ 많은 작은 전등들이 있습니다.  

     

    단지 꺼짐과 켜짐의 두가지 상태만으로 수를 다루는 방법을 알아 보겠습니다. 

     

    우리가 입는 옷은, 천으로 만들어지고, 천은 다시 실로 엮습니다. 

    컴퓨터에서 수를 다루는 방식도 이와 같습니다. 

     

    가장작은 단위인 켜짐과 꺼짐,

    껴짐은 1로 꺼짐은 0으로 표현하며, 이를 bit 라고 부릅니다. 

    8개의 bit 가 엮여서 1개의 byte 가 됩니다. 

    여러개의 byte 가 엮여서 하나의 파일이나 프로그램이 됩니다.  

     

    0과 1만으로 조합된 아주 긴 0,1의 엮음이 파일이 되고, 프로그램이 되는 것 입니다. 

    컴퓨터에 저장된 음악파일도, 사진도, PPT , WORD 문서들도 모두 결국에는 아주 긴 0,1 의 묶음입니다. 

     

    모르스 부호를 생각해보지요. 

     

    출처 :나무위키

     

    모르스 부호는    ⌯ 와  ⎯ 의 두가지 부호만으로 아주 긴 문장을 만들 수 있습니다. 

    컴퓨터에서 0 과 1로 아주 긴 내용을 저장하는 파일을 만드는 것도 이와 같습니다. 

     

    그런데, 왜 꼭 0과 1의 두가지 상태만으로 수를 표현할까요 ?  사람처럼 0~9까지의 10가지 상태로 숫자를 사용하면 더 좋지 않을가요 ?

     

    이유는 비용 때문입니다.  전자공학으로 각 자리(전등)를 0~9 까지로 표현 할 수도 있습니다.  

    전등으로 생각하면 완전히 꺼진 상태 0, 조금 밝은 상태를 1, ... 아주 밝음을 9로 할 수 있습니다. 

    요즘의 밝기를 조절할 수 있는 스텐드와 같이 단지 꺼짐과 켜짐이 아닌 여러단계의 상태를 가지게 만들 수도 있습니다. 

     

    이렇게 가장 작은 단위를 여러단계의 상태를 가지도록 만들면, 전자적으로 비용이 비싸지고 복잡해 집니다. 

     

    그래서, 가장 작은 단위를  단순한 형태인 0(꺼짐), 1 (껴짐)의 단 두가지의 상태를 가지도록 하고 이 0과 1의 긴 엮음으로 

    자료(아주 긴 숫자)를 표현하게 되었습니다. 

     

    8개의 Bit 는 1개의 Byte 입니다.  왜 꼭 8개 일가요?  

    확실하지는 않지만, 가작 장은 단위의 bit 가 2가지 상태만 가지므로  2의 배수인 수 중에 적절한 크기를 가진 수가 8를 

    고른것 이 편리해서 일것 같습니다. 

     

    "1 Byte = 8 Bit = 8개의 전등" 이 표현 할 수 있는 수는 0~255까지로 256 가지의 종류입니다. 

    이는 , 

      2 X 2 X 2 X 2   X 2 X 2 X 2 X 2  = 256 입니다. 

     

    4개의 Bit 는 Nibble 이라하며, 16가지의 종류를 표현할 수 있습니다. 

    참조 : https://namu.wiki/w/4%EB%B9%84%ED%8A%B8 를 읽어 보세요. 

     

    1 Bit 는 0과 1의 두가지 상태를 가지며, 

    1 Byte 는 8 Biit 이며 0~255 의 256 의 상태를 표현한다는 것만 알아 두세요. 

     

    컴퓨터 내에는 아주~~ 많은 bit 를 가지고 있으며, 이를 가지고 수를 처리한다고 생각하면 됩니다. 

     

     

    10진법 , 2진법,  16진법

     

    사람은 0~9까지의 10가지 상태를 가지는 (10개의 부호를 가지는) 십진법에 익숙합니다. 아마도 손가락 10개라서 손가락으로 

    수를 세다 보니 10진수가 익숙해진것이 아닌가 합니다. 

     

    그런데, 사람은 10진수 이외에 24진법, 60진법도 사용합니다. 

    60초는 1분이며, 60분은 1시간이고 24시간은 하루 입니다. 

    의외로 사람은 단지 10진법 말고 다양한 진법을 사용합니다. 1년은 12달인 것 처럼요. 

     

    새백 0시 5분은 ,   자정에서 300초가 지난 시점이라고 얘기할 수 있습니다. 

    새백 1시 5분은 ,   자정에서 65 분이 지난 시점이라고 할 수도 있고,  자정에서 3,900 초가 지난 시점이라고도 할 수 있습니다. 

    사람들 간에 시간을 얘기할 때 3,900초라고 안하지요, 불편하니까 1시 5분이라고 얘기하는 거죠. 

     

    동일한 물리량을 여러가지 다른 단위(진법)으로 표현 할 수 있습니다. 

     

    컴퓨터는 켜짐(1), 꺼짐(0)의 두가지 상태만으로 수를 표현해야 하므로 2진법을 사용합니다. 

    물리량 3는 10진법 3로 표현적을 수도 있고, 2진법으로 11 (2 + 1 = 3)  로 적을 수도 있습니다. 

     

    이진법 11은  10진수의 3에 해당합니다. 

     

       십진수 0 -> 이진수 0

       십진수 1 -> 이진수 1

       십진수 2 -> 이진수 10 ( 자리 올림을 하고 0을 붙임니다.  십진수 9 다음에는 한자리 올림을 하고 0을 붙인 10이 되는 것과 같습니다.)

       십진수 3 -> 이진수 11  입니다. 

     

    이와 같이 하면 십진수 9는 이진법으로는 1001 로 십진수 15는 1111 이 됩니다. 

     

    시간의 예에서와 같이 어떤 특정 물리량을 여러가지 진법으로 표현할 수 있습니다.  

     

     

    컴퓨터에 저장되어 있는  1Byte의 값은 8자리의 이진수 이므로 (00000000 ~ 11111111) 

    시간을 초로 부르지 않고 몇시 몇분이라고 하는 것처럼좀더 편리하게 부르는 방법이 필요합니다. 

     

    1개의 Byte 는 8개의 bit 이므로 256가지의 상태를 표현할 수 있으며 

    이를 이진수로 적으면 00000000 ~ 11111111 입니다. 

     

    물리량 , 255는 이진수로는 11111111 입니다.  자리가 너무 길어지고 

    부르기도 힘듭니다.  그래서 자정으로 부터 3,900초 지난 시점을 1시 5분이라고 하는 것 처럼 

    좀더 편리하게 부를 수 있는 방법을 생각하게 되었습니다.  그게 16진법 입니다. 

     

    왜 16진법이냐면, bit (0 또는 1의 두가지 상태) 4개가 있으면 16가지의 상태를 나타낼 수 있기 때문입니다. 

    즉 8개의 bit 를 4 bit(nibble) 덩어리 두개로 나누어 부르며, 4개의 bit 는 16가지의 상태를 나타내기 때문에 

    16진수 입니다. 

     

    16진수로 1Byte 를 적으면  단지 2개 자리수로 표현 할 수 있습니다. 

     

    사람은 수를 셀때 0~9의 기호를 사용합니다. 10진수를 사용하니 10개의 기호만 있으면 됩니다. 

     

    16진수에서는 16개의 기호가 필요합니다. 

    그래서,   0~9 까지는 그냥 사용하던 기호 0~9를 사용하고, 11부터 15는 부호 A~F를 사용합니다. 

     

    16진수의 A (10개의 물리량 , 10진수에는 9 다음의 수 이므로 자리올림을 하고 0을 붙임) 는 십진수 10개의 물리량 입니다. 

     

    출처 : 나무위키

     

    이렇게 16진수를 이용하면 컴퓨터의 저장된 1개의 byte 값을 좀더 편하게 부를수 있습니다. 

     

    물리량 100은 이진수로 표현하면  0110 0100 이며 , 이를 16진수로 표현하면 64 입니다. 

    즉 , 기호로 표현한 64는 십진수와 16진수가 동일하지만 이를 십진수로 해석하면 물리량 64, 16진수로 해석하면 하면 100 (16X 6 + 4) 입니다. 

     

    이렇게 16진수를 사용하는 이유는 컴퓨터에서는 종종 byte 단위로 값을 칭해야 하는 경우가 있으며, 

    1개의 byte 는 0~255의 수이므로 10 진법으로는 자리수가 딱 나누어지지 않지만, 16진수로는 딱 두자리로 나누어지기 때문입니다. 

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.