2014-08-27 3 views
1

유닉스 타임 스탬프는유닉스 타임 스탬프를 압축하는 방법? 초 단위

1409134929 

문제는 우리의 시스템 메모리에 의해 제한되어있다 우리가 생성하여 타임 스탬프마다 초를 기억하고 (물론 반올림)은 다음과 같다. 이들은 하나씩 무작위로 액세스되므로 "전체"압축은 작동하지 않습니다.

Smaz은 짧은 문자열 만 압축하므로 도움이되지 않습니다. LZMA은이를 자르고 있습니다.

이러한 유형의 압축을 수행하기위한 특별한 압축 알고리즘이나 사전 기술이 있습니까?

답변

3

문자열을 사용하지 말고 2 진 값을 사용하십시오. POSIX 타임 스탬프 (EPOCH)는 32 비트 값 (적어도 32 비트 PC)에 저장됩니다.

char 형식이 32 비트 메모리 슬롯을 사용하는 경우 문자열에 타임 스탬프를 저장하면 9x8bit = 72bits 또는 최대 9x32bits = 288bits가 소요될 수 있습니다.

해결 방법은 문자열의 바이너리 형식을 얻는 것입니다. 이진 드릴 것입니다 여기에서

:

Binary EPOCH

당신이 C 언어를 사용하는 경우

에서, mktime 기능을 살펴 보시기 바랍니다.

+0

감사합니다. 이 방법에 대해 생각하지 않았습니다. 11 바이트를 4 바이트로 줄인 단일 타임 스탬프를 가져 왔습니다! – user3981598

관련 문제