사람은 10진수를 사용하고 컴퓨터는 2진수를 사용한다.
왜?
손가락이 10개라 10진수를 사용했을 것 이다.(잘모른다)
그렇다면 컴퓨터는 왜 2진수일까?
전기 신호를 이용한 반도체이기 때문에 전기가 흐르냐-1 흐르지않냐-0에 의해 2진수를 택했다.
0 또는 1을 넣을 수 있는 박스를 1bit로 지정했다.
IBM연구소에서 1byte를 8개의 bit로 지정했다.(비용, 효율적측면)
그렇게 기본 메모리 단위는 byte가 된다.
5라는 숫자를 메모리에 저장하려면 몇 byte가 필요할까?
5를 2진수로 변환하면 101이다.
3칸이 필요하기 때문에 1byte면 충분하다.
1byte는 2의 8승(0~255)이다.
스타크래프트라는 게임의 공,방 업그레이드는 3까지 이지만, 유즈맵에서는 255까지 해본적이 있을 것 이다.
1byte를 사용했기 때문이다.
소프트웨어는 4byte가 기본이다.
5라는 숫자를 1byte를 사용하여 메모리에 저장했다.
그런데 5가 연산으로 1억이 되었다.
1억은 1byte에 담을 수 없다.
JAVA에서는 int라는 정수형 변수의 크기를 4byte로 지정하여 그 크기를 제한하였다.
즉, 5라는 숫자를 담아도 4byte짜리의 메모리에 저장된 것이다.
sign-bit : 4byte 중 가장 첫번 째 bit이고 0이면 양수, 1이면 음수다.
sign-bit를 제외한 값은 2의 31승 약 21억이다.
int의 값은 약 -21억에서 21억 사이의 값이 된다.
cpu와 메모리 사이에 bus 시스템으로 연결?된다.
구리선으로 연결 되는데 32개의 구리선을 이용해 한번에 4byte데이터를 보낼 수 있다.
(최근에는 64개~??개)
패딩데이터
'컴퓨터프로그래밍' 카테고리의 다른 글
정보통신이론(HTTP) (0) | 2024.08.20 |
---|---|
하이퍼바이저(Hypervisor) (0) | 2024.07.22 |
컴파일러(Complier)와 인터프리터(Interpreter) (0) | 2024.07.01 |
중앙처리장치(CPU) 작동 원리 (0) | 2023.07.11 |
컴퓨터의 구성 (0) | 2023.07.11 |