Programming/_Common
-
_Process_memory_structureProgramming/_Common 2023. 9. 19. 16:01
프로그래밍을하면 변수의 타입에 따라 변수가 위치할 메모리 섹션이 결정된다. 배열과 객체는 힙영역, 내장 기본 타입의 변수는 스택영역에 할당된다. 메모리 구조를 모른채로 프로그래밍을 하기도 하지만, C++에서는 선언하는 변수에 따라 변수가 위치하는 메모리 섹션이 달라져서 그에 따라 성능에 유의미한 차이를 만든다고 한다. (OS가 가상메모리를 제어한다.) 위의 그림은 32bit 프로세서 메모리 구조로 32bit 시스템에서는 메모리 주소가 32bit로 표현된다. 커널 메모리가 1 ~ 2 GB를 차지하기 때문에 실제로 유저 영역의 메모리 크기는 2 ~ 3 GB이다. 각 박스는 메모리 섹션 또는 세그먼트라고 부른다. 힙(Heap) 힙은 프로세스가 동작하며 동적으로 할당, 해제되는 메모리 섹션이다. OS에서 가용 ..
-
_TypeProgramming/_Common 2023. 7. 19. 20:55
우리가 변수를 사용한다면, 어떠한 형을 사용해서 변수를 사용해야할지 결정해야한다. C++의 경우 정적타이핑(Static typing) 언어이기 때문에 변수의 데이터 타입을 지정해줘야 변수를 사용할 수 있지만, Python과 같이 동적 타이핑(Dynamic typing) 언어는 컴퓨터가 변수에 대한 형을 알아서 해석해주기 때문에 데이터 타입을 지정하지 않아도 사용할 수 있다. 2. 정적 타이핑(Static typing) 정적 타이핑의 대표적인 언어는 C, C++이 있으며 변수의 데이터 타입을 직접 명시하여 컴퓨터가 해야할 일을 덜어준다. 정적 타이핑을 사용함으로써 코드의 안정성이 커지고 코드의 구조를 쉽게 파악할 수 있다는 장점이 있지만, 코드가 길어질 수 있다는 단점이 있다. C++의 기본형은 다음과 같..
-
_Bit & ByteProgramming/_Common 2023. 7. 19. 19:34
1. 비트(bit: binary digit) bit는 컴퓨터가 데이터를 처리할 때 가장 기본이 되는 최소의 단위이다. 하나의 비트는 0과 1 두가지 숫자중 하나만 표현할 수 있다. 2. 바이트(byte) byte는 비트를 8개 모은것을 이야기한다. 1bit 0, 1 2^1 2bit (0, 0), (0, 1), (1, 0), (1, 1) 2^2 ... ... ... 8bit (1byte) (0, 0, 0, 0, 0, 0, 0, 0) ~ (1, 1, 1, 1, 1, 1, 1, 1) 2^8 = 256 위의 표를 보면 1byte는 0 ~ 255 사이의 값을 가질 수 있게 된다. 컴퓨터에서 자주 사용하는 단위를 정리하면 다음과 같다. 단위 byte bit bit 1/8 Byte 1 bit Byte 1 Byte 8..
-
_literal_constantProgramming/_Common 2023. 7. 15. 01:00
1. 리터럴(literal) 리터럴(literal)은 우리가 흔히 코드에서 볼 수 있는 'A', "Hello, world!", 123등과 같이 특정 문자나 숫자표기를 의미한다. // 문자 리터럴 'M' // 문자열 리터럴 "Hello" // 숫자 리터럴 123 123.0 10 // 10진수의 10 0b10 // 2진수의 10, 2를 나타냄 010 // 8진수의 10, 8을 나타냄 0x10 // 16진수의 10, 16을 나타냄 여기서 '\'가 붙는 문자 리터럴이 존재하는데 이를 이스케이프 시퀀스라고 한다. 이스케이프 시퀀스 의미 \a 경고음 \b 백스페이스 \f 페이지 나누기 \n 줄바꿈 \r 복귀 (carriage return) \t 수평 탭 (horizontal tab) \v 수직 탭 (vertical..