메모리
-
포인터의 크기는 어떻게 결정될까?Programming🧑💻/Cpp 2025. 2. 3. 23:48
변수는 변수를 선언할때 지정한 타입에 따라 값을 저장하기 위해 사용할 수 있는 메모리의 양이 결정됩니다. 예를 들어 일반적인 경우 char 의 경우에는 1byte , int의 경우에는 4byte가 해당 변수를 위한 메모리 공간으로 할당됩니다. 그렇다면 포인터 자체의 크기는 어떻게 될까요? 이 질문에 답하기 위해 간단한 C++ 코드를 작성하여 실행하면 32 비트 시스템에서는 모든 포인터가 4바이트, 64 비트 시스템에서는 모든 포인터가 8바이트로 출력됩니다. 비트 시스템은 뭐고 왜 이런 결과가 나오게 되는 걸까요?#include using namespace std;int main() { // 다양한 타입의 포인터 선언 int* intPtr; char* charPtr; double* d..
-
변수와 포인터Programming🧑💻/Cpp 2025. 1. 30. 23:48
변수 선언변수를 선언하면 해당 변수의 값을 저장하기 위한 메모리를 할당한다.이때 얼만큼의 메모리를 할당할지는 변수의 타입에 따라 결정된다.예를 들어 일반적으로 int 타입의 경우에는 4byte를 char 타입의 경우 1byte를 할당한다.2025.01.30 - [Programming🧑💻/Cpp] - 변수와 포인터시스템 내부적으로 룩업 테이블이라는 것을 가지고 있으며 해당 테이블에는 변수명, 변수 타입, 메모리 시작 주소를 가지고 있다.변수를 선언한 다음에 `a = 5` 명령어가 실행되면 내부적으로는 룩업 테이블에서 변수명 a에 대응하는 메모리 시작 주소를 찾아가서 5라는 값을 저장한다.포인터란?다른 변수의 주소를 값으로 저장하는 변수변수를 선언하는 이유는 숫자나 문자와 같은 특정한 '값'을 저장하기..
-
타입은 왜 중요할까?Programming🧑💻 2025. 1. 29. 23:48
프로그래밍 언어는 변수 선언시 타입 명시 유무에 따라 크게 두 가지로 나눌 수 있습니다. JavaScript나 Python같은 스크립트 언어들은 변수 선언 시 타입을 명시하지 않아도 되며, 런타임에 타입이 결정되는 동적 타입 시스템을 사용합니다. 반면 C나 Rust와 같은 언어들은 변수 선언 시 타입을 명시적으로 지정해야 하며, 컴파일 타임 이전에 타입이 결정되는 정적 타입 시스템을 채택하고 있습니다. 그렇다면 왜 C나 Rust와 같은 언어들은 변수 선언 시 타입을 명시해야 할까요? 이는 타입 지정을 통해 개발자가 데이터를 표현하는 데 필요한 메모리를 직접 제어할 수 있도록 하기 위함입니다. 컴퓨터는 모든 데이터를 0과 1의 나열로 표현합니다. 각 자리에는 0 또는 1만이 올 수 있으며, 이러한 값들의 ..
-
아날로그 신호를 디지털 신호로 바꾸는 과정Sound & Music🔊 2023. 4. 3. 08:26
아날로그 신호와 디지털 신호아날로그는 값의 형태가 연속적으로 값이 무한하지만 디지털은 값의 형태가 이산적으로 값들 간의 간격이 존재한다. 이 값 형태의 차이를 극복하기 위해 고안한 방법이 샘플링이다. 샘플링샘플링이란 시간에 대하여 일정한 주기 T 간격으로 잘라 시간에 대한 값을 뽑아오면서 연속적인 형태의 아날로그 신호를 이산적인 형태의 디지털 신호로 바꾸는 작업을 말한다. 이때 뽑아온 값들을 샘플이라고 한다. 뽑아온 샘플들이 원래의 신호에서 어느 시간에 위치해 있었는지를 파악하기 위해서는 위와 같은 식을 활용한다. 일정한 주기 T 간격으로 잘랐기 때문에 몇번째 샘플인지만 알면은 T(시간)Xn(샘플의 순번)을 통해 샘플이 어느 시간대에서 추출되었는지 알 수 있다. Sampling rate연속적 신호를 이산..