[ComputerScience bootcamp with python 1장]
in Python on BootcampPython
본 포스팅은
컴퓨터사이언스 부트캠프 with 파이썬
이라는 책을 참고하여 개인 공부를 하면서 정리하고 있습니다.문제 될 시 삭제하겠습니다.
Chapter 1 변수
1. 메모리 미리보기
- 변수(variable)나 참조(reference)의 개념을 명확히 이해하려면 메모리부터 이해
- 컴퓨터는 1과 0으로 이루어진 데이터를 처리
- 1과 0을 표현할 수 있는 데이터 단위 비트(bit)
- 비트가 여덟 개 모이면 바이트(byte)
1바이트는? 01011010 8개
- 기가바이트는
1,024x1,024x1,024 = 1,073,741,824
바이트 의미
1.1 32비트와 64비트의 의미
- 컴퓨터는 데이터 단위로 비트를 사용
- 데이터를 한 번에 몇개 보낼 수 있는지를 나타내는 지표가 32비트와 64비트
- 비트 수가 높을수록 한 번에 전송할 수 있는 데이터 양이 많아짐
- 한 번에 데이터를 보낼 수 있는 데이터 갯수?
32비트면 32비트 컴퓨터, 64비트면 64비트 컴퓨터
- 컴퓨터 메모리 주소
32비트 컴퓨터면 32비트로 표현, 64비트 컴퓨터면 64비트로 표현
1.2 메모리에 우편번호를 매긴다
여기서 잠깐
우편번호란?
우리나라 땅을 다섯 자릿수로 표현
- 예를 들면 한 구역을 15235 형태로 나타냈을 때
- 아파트 한 채의 한 호(B동 1234호처럼) 까지는 나타낼 수 없음
- 그치만 어느 동에 있는 어느 아파트인지는 구분 가능
- 그렇다면 다섯 자릿수 우편번호로는 주소를 몇 개까지 나타낼 수 있을까?
- 다섯 자릿수이므로 10^5 즉, 00000 ~ 99999 구역을 총 100,000개 까지 나타낼 수 있음
- 예를 들면 한 구역을 15235 형태로 나타냈을 때
이제 메모리를 우리나라라고 생각해 보면?
- 컴퓨터는 0과 1밖에 모르기 때문에 2진수로 나타내야 함
- 메모리 주소 한 개는 메모리에서 1바이트(8비트)를 가리킴
- 2진수 여덟 개로 메모리 주소를 표현 => 8비트 컴퓨터
- 32비트 컴퓨터라면 하나의 주소를 나타내면? 2진수 서른두 자릿수를 사용
그러므로 32비트에서 나타낼 수 있는 주소 개수는 2^32(=4,294,967,296)개
이것은 4,294,967,296 바이트는 4x1,024x1,024x1,024 바이트로 풀어 쓸 수 있음
- 1,024 바이트는 1KB, 1,024x1,024바이트는 1MB, 1,024x1,024x1,024바이트는 1GB
TIP KB = 2^10 = 1,024, MB = 2^10x2^10 = 1,048,576, GB = 2^10x2^10x2^10 = 1,073,741,824
- 32비트로는 총 4GB 메모리를 가리킬 수 있음
- 이것이 바로 32비트 컴퓨터에서 4GB보다 큰 메모리가 무용지물인 이유
- 32비트가 주류였던 과거에 4GB 메모리에 추가로 4GB 메모리를 더 설치해도 메모리 주소를 배정받지 못했음
- 64비트 컴퓨터는 이론으론 2^64=(18,446,744,073,709,551,616)바이트이므로 훨씬더 큰 램을 설치해도 무방