본문 바로가기

Today I Learned

23.01.10 - 메모리, 정수형, 실수형

메모리라고 부르는 것은 4가지가 있다.

 

레지스터 - 캐쉬 - 램 - 하드디스크

 

위 메모리들은 ALU에서 가까운 순서대로 나열한 것이다.

ALU 산술,논리연산을 하는 CPU의 연산 장치인데

ALU에서  가까울 수록 속도가 빠르고 멀수록 용량이 크다.

프로그래밍에서 메모리 공간을 사용하는 것은 램(RAM)을 의미한다.

 

 

컴퓨터에서 연산의 최소 단위비트이다.

비트는 전구와 같이 전기가 들어왔을 때 1, 그렇지 않을 때 0으로 표현한다.

컴퓨터에서 저장의 최소 단위바이트이다.

바이트는 8비트이며 256개를 표현할 수 있다.

1byte - 1kb(1024byte) - 1mb(1024kb) - 1gb(1024mb) -> 1tb(1024gb)

   레지스터                      캐쉬                 램                      하드 

상용적으로 사용하는 데이터의 단위이며 밑에 메모리는 주로 사용하는 단위이다.

 

 

상수: 고정 불변의 수

1. 리터럴 상수 : 숫자 10처럼 이미 고정된 숫자

2.심볼릭 상수: 프로그램 기호에 의해 강제로 상수화 (ex. const)

 

 

변수: 프로그램의 흐름에 따라 본래 가지고 있는 값이 달라지는 숫자

정수형: short(2byte), int(4byte), long(4byte), long long(8byte)

정수형 변수의 경우 별도 표기가 없다면 암시적으로 signed를 가지고 있다.

signed는 부호가 있는 정수, unsigned는 부호가 없는 정수이다.

signed제일 왼쪽의 비트를 부호 비트로 사용하기 때문에 표현할 수 있는 정수가 반으로 줄어든다.

 

ex) short : -32768~32767까지 표현 가능

      unsigned short: 0~ 65535까지 표현 가능

 

long과 int는 둘 다 4바이트를 표현 가능한데 차이점은 뭘까?

 

int형은 CPU의 레지스터와 동일한 크기를 가지는 타입이다.

그래서 실제 크기는 플랫폼에 따라 달라진다. (16비트 운영체제에서는 16비트,32비트에서는 32비트...)

현재 int형의 크기는 32비트 운영체제에서는 32비트(4바이트), 64비트 운영체제에서는 64비트(8바이트)이다.

반면 long형은 크기가 4바이트로 고정되어 있다. 

 

 

실수형: float(4byte), double(8byte) // long double은 double과 동일하게 취급

실수를 정수부와 소수부로 나누어봤자 얼마 저장하지 못하기 때문에

컴퓨터는 실수를 부동 소수점이라는 방법으로 저장한다. 

부동 소수점은 실수를 지수부와 가수부로 나누어 기억하는 방식이다. 

길어질것 같아 밑에 링크에 정리했다.

 

https://cppking.tistory.com/184

 

 

 

'Today I Learned' 카테고리의 다른 글

23.01.16 - 디버깅 고급  (0) 2023.01.17
23.01.13 - 분기문, 난수 생성  (0) 2023.01.13
23.01.12 - 연산자2, 분기문  (0) 2023.01.12
23.01.11 - char, bool , 연산자  (0) 2023.01.11
23.01.09 - 컴파일러, 네임 스페이스  (0) 2023.01.09