왜 우리한테 익숙하지 않은 2진법을 컴퓨터에 사용했을까?
비트와 바이트들이 모여서 우리가 알고 있는 글자, 이미지, 영상을 표현한다.
우리는 일반적으로 0~9까지의 수를 이용한 10진법으로 우리의 모든 수를 나타내고 있다.
우리가 가진 손가락이 10개이기 때문에 그렇게 발달했다고 한다.
만약 손가락이 12개면
12진법이 발달했을것이다.
왜 우리한테 익숙하지 않은 2진법을 컴퓨터에 사용했을까?
사실 컴퓨터를 처음 개발했던 애니악은 사람의 생각과 같은 10진법을 사용했다고 한다.
10진법 사용했던 방법은?
하나의 비트를 열 조각으로 나누었다.
나누어서 5v(볼트)까지 표현
0.5v 일때 1
1.0v 일때 2
1.5v 일때 3
2.0v 일때 4
2.5v 일때 5
3.0v 일때 6
3.5v 일때 7
4.0v 일때 8
4.5v 일때 9
5.0v 일때 10
이렇게 표현해 갔다.
그래서 만약 123을 표현하고 싶다고 하면?
각각의 비트에 다른 전압을 쏴주는 것이다.
0.5v 1.0v 1.5v
1 2 3
각 3개에 다른 전압을 쏴주면 내가 원하는 123을 표현할 수가 있는 것이다.
하지만 전기장치는 전압이 불안정한 경우가 많았다.
내가 1.5v를 쏴서 3을 표현하고 싶었지만 이 전기는 1.8v로 잘못 쏴지는 경우가 많았다.
그렇게 되면 3으로 표현해야 할지 4로 표현할지 애매 해지는 것이다.
그러다가 124로 잘못 표현되는 경우가 생기는 것이다.
이렇게 컴퓨터에 오류가 많이 생긴다면?
우리가 알고 있는 은행어플에서 숫자 하나가 바뀐다고 생각하면 된다.
그러면 아찔한 것이다.
이 오류를 가장 줄일 수 있도록 한 방법!
전기가 들어오면 무조건 1
전기가 없으면 무조건 0
이렇게 간단한 방법으로 표현을 하여 오류를 줄일 수 있었고,
이렇게 오류를 가장 많이 줄이기 위해서 개발되어 왔다.
123을 보면 보통 사람은 어떻게 해석하나?
보이는 바와 같이 1, 2, 3으로 해석할 수 있겠지만 대부분의 사람은 백이십삼으로 생각을 할 것이다.
백이십삼으로 생각하는 이유는?
초등학교 때 각 수는 각각의 자리값을 가지고 있다고 배웠기 때문이다.
그래서 1은 백의 자리, 2는 십의 자리, 3은 일의 자리에 있기 때문에 백이십삼으로 읽는 것이다.
이안에는 굉장히 복잡한 계산과정이 숨어있다.
각 자릿수를 일, 십, 백으로 나타내면
100 x 1, 10 x 2, 1 x 3
지수로 표현하면
10^2 x 1, 10^1 x 2 , 10^0 x 3
더하면
100 + 20 + 3 = 123
컴퓨터에게 123을 표현하라고 하면 이런 많은 과정을 거쳐야 된다.
근데 사람은 바로 알 수 있는 숫자 체계이다.
그러면 컴퓨터에게 어떻게 간단하게 알려줄 수 있을까?
컴퓨터는 1,0 두 가지로 표현하고 있다. 수를 나타내는 방법은 사람이 계산하는 방법과 동일한 계산방식을 사용한다.
하지만 사용하는 숫자의 개수가 적은 것뿐이다.
이진법 각 자리의 크기가 다르다.
첫 번째 자리에는 2의 0승 1,
두 번째 자리에는 2의 1승 2,
세 번째 자리에는 2의 2승 4,
네 번째 자리에는 2의 3승 8,
다섯 번째 자리는 2의 4승 16,
.... 각 크기에 2를 곱하면서 커진다.
2진수에서 10진수로
2진수 각 자리의 숫자와 자리값을 곱하고, 이것들을 더한 값은 우리가 사용하는 10진수가 된다.
그러면 이진법에서의 1은?
001
첫 번째 자리를 1로 바꿔주면 된다.
1*1이다.
그러면 이진법에서의 2는?
010
2*1이다.
이진법에서의 3은?
011
이렇게 표현해서 1*1 ,2*1을 더해서 총 3이 되는 것이다.
이진법에서의 4는?
100
4*1이다.
이진법에서의 5는?
101
4*1 + 1*1 =5
이진법에서의 6은?
110
4*1 + 2*1 =6
이진법에서의 7은?
111
4*1 + 2*1 + 1*1 =7
전구로 수를 표현하면
불이 꺼졌다, 켜졌다로 표현가능
컴퓨터 안에는 전구의 역할을 하는
예전에는 진공관,
현재는 트랜지스터, RC칩과 같은 전구가 하나 들어있다고 생각하면 된다.
이것이 하나의 비트인 거다.