정진하는중
썸네일 이미지

[Windows] 유니코드와 인코딩

1. 유니코드 (Unicode) 윈도우 운영체제는 다양한 국가의 언어를 지원하기 위해서 유니코드 문자를 지원합니다.또한 인코딩 방식으로 UTF-16 방식을 이용합니다. https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C 유니코드 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 유니의 음반에 대해서는 U;Nee Code 문서를 참고하십시오. 유니코드(영어: Unicode, 정식 명칭 The Unicode Standard)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현ko.wikipedia.org  2. UTF(Unicode Transformation Formant) 문자 집합(문자셋)을 컴퓨터가 처리할 수 있는 이진..
썸네일 이미지

[MSVC] switch-case optimization

해당 내용은 Visual Studio의 msvc 컴파일러를 기준으로 작성한 글입니다.( 본인이 사용하는 컴파일러가 해당 최적화를 진행하는 것은 컴파일러 문서를 참조하세요. )  1. 점프 테이블 swtich-case의 어셈블리 코드가 만들어 질 때, 컴파일러는 효율성을 높이기 위해, 여러 조건문을 비교하는 어셈블리를 대신하여 점프 테이블을 만들어서 활용합니다.이를 통해 Swtich-case 문의 분기를 상수 시간 복잡도로 분기할 수 있습니다.( 이는 case 값을 정렬하여 작성하였을 때를 기준으로 합니다. 예시를 들어 Case 1, Case 2, Case 3 ... )  using namespace std;int main(){ int val = 0; std::cin >> val; switch(val) ..
썸네일 이미지

[Windows] 가상 메모리와 물리 메모리

1. 페이징 페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다 즉 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(page)라고 한다. 주소공간을 페이지 단위로 나누고 실제기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.- 위키 피디아- 가상기억장치는 가상 메모리를 뜻합니다. 이 가상 메모리는 RAM과 하드 디스크와 같은 2차 기억 장치를 모두 포함한메모리 개념입니다. 페이지 가상 메모리를 일정한 크기로 나눈 블록 프레임물리 메모리를 일정한 크기로 나눈 블록   위의 사진을 통해 페이지 테이블은 가상 주소 공간의 메모리와 물리적인 메모리를Mappi..
썸네일 이미지

[Windows] 윈도우의 메모리 구조

1. 프로세스의 가상 주소 공간모든 프로세스는 자신만의 가상 주소 공간을 가질 수 있습니다.이는 가상 메모리를 활용하여 각 프로세스가 서로의 메모리 영역에 영향을 주지 않고 독립적으로 실행될 수 있게 합니다. 가상 주소 공간은 프로세스마다 고유하며, 이를 통해 메모리 보호와 격리를 구현할 수 있습니다. 32비트 운영체제에서는 4GB(기가 바이트) 메모리 공간을 가질 수 있습니다. 2 ^ 32  = 4,294,967,296 1GB    = 1,073,741,82464비트 운영체제에서는 16EB(엑사 바이트) 메모리 공간을 가질 수 있습니다.2 ^ 64  = 18,446,744,073,709,551,6160부터 2 ^ 64 만큼의 주소 공간을 사용할 수 있다는 말이겠죠.  이는 프로세스 별로 가질 수 있는 ..
썸네일 이미지

시간 함수

광고가 없는 개인 저장용 블로그입니다. 자세한 내용은 링크한 출처를 참조 바랍니다. 1. 해상도 모든 시간 관련 함수들은 저 마다의 해상도를 가지며, 얼마나 많은 Tick을 쪼개어 시간을 표현하고자 하는지에 따라 저해상도와 고해상도를 나눌 수 있다.   2. GetTickCount / GetTickCount64 운영체제가 실행된 이후 경과 시간을 ms 단위로 반환합니다.윈도우의 기본 타이머 정확도는 15.625ms(15,625,000ns), 타이머 인터럽트의 발생 횟수에 영향을 받는 함수입니다.이 함수는 3번 항목에서 다루는 timeBeginPeriod를 통해 조절된 타이머 인터럽트에 영향을 받지 않습니다.함수의 반환 값은 운영체제가 기본 타이머의 시간 단위에 맞춰 반환 할 변수를 업데이트하기 때문입니다..