* GetTickCount는 시스템이 시작되고 나서의 시간을 밀리 초로 반환하는 함수입니다.
* GetTickCount는 시스템이 시작되고 나서 49.7일이 지나면 0에서 다시 시작합니다.
* GetTickCount가 오버플로우되어 0으로 값이 설정되었더라도 예전값과 - 연산을 해도 크게 지장은 없습니다.
DWORD 형이 부호가 없기 때문에 현재값 - 예전값 은 49.7일 이전 값이 아니면 옳은 값을 반환합니다.
** 0x00000001 - 0x00000000 = 1
** 0x00000000 - 0xFFFFFFFF = 0x00000000 + (0xFFFFFFFF 2의보수) = 0x00000000 + (0x00000001) = 1
* GetTickCount는 시스템이 시작되고 나서 49.7일이 지나면 0에서 다시 시작합니다.
* GetTickCount가 오버플로우되어 0으로 값이 설정되었더라도 예전값과 - 연산을 해도 크게 지장은 없습니다.
DWORD 형이 부호가 없기 때문에 현재값 - 예전값 은 49.7일 이전 값이 아니면 옳은 값을 반환합니다.
** 0x00000001 - 0x00000000 = 1
** 0x00000000 - 0xFFFFFFFF = 0x00000000 + (0xFFFFFFFF 2의보수) = 0x00000000 + (0x00000001) = 1
간단하게 4bit 로 계산을 해보겠습니다. 4bit의 최대값은 1111 (2진수) == 15(10진수) 4bit의 최소값은 0000 (2진수) == 0(10진수) 최소값 - 최대값 을 계산해보면 1111의 2의 보수값은 1111의 역수 0000 더하기 1 = 0001 2진수) 0000 - 1111 = 0000 + 0001 = 0001 10진수) 0 - 15 = 0 + 1 = 1 따라서 값은 1이 나온다. 마찬가지로 5 - 15(4비트 최대값)는 6이 된다. 0101 - 1111 = 0101 + 0001 = 0110(6) 14 - 15 = 15 14 - 15(4비트 최대값) = 1110 - 1111 = 1110 + 0001 = 1111(15) |