| [ CnUnix ] in KIDS 글 쓴 이(By): soulman (그림자) 날 짜 (Date): 2003년 8월 16일 토요일 오전 09시 55분 04초 제 목(Title): [Q] data 저장 방법... 프로그램에서 출력해야 하는 data가 너무 많습니다. double형을 그냥 fprintf로 화일에 출력했더니 심한 경우에는 GB가 넘더군요. binary로 저장하면 조금 절약되겠지만, 충분하지는 않은 거 같고.. 그리고 binary로 저장한 data는 기계마다 byte 저장 순서가 달라서, 호환성에 문제가 발생하기도 하더군요. 어떤 놈은 [1234] 순서로, 어떤 놈은 [4321] 순서로 저장을 합니다. 생각끝에, 우리가 필요로 하는 output의 정밀도가 별로 높지 않다는 것을 깨닫고, (프로그램 내에서는 double로 여전히 정밀도 높게 계산해야 하지만..) 유효숫자 3자리 정도에 지수는 -15 ~ +15정도면 되지 않을까.. 하고 생각하게 되었습니다. 3자리 10진수는 10bit면 되는 거 같고 (1024) 부호 합쳐서 11bit, 지수 4bit에 지수 부호비트 1bit하면, 16bit, 2byte면 숫자 하나를 다 저장하겠더군요. 이 일을 좀 효율적으로 하고 싶데, 빠르게 2byte로 만들어서 binary로 출력하는 좋은 방법이 없을까요? 출력해야 하는 숫자 data가 무척 많아서 압축이 필요할 경우, 보통 사용하는 방법은 무엇인가요? encoding에 시간을 많이 투자할 수는 없읍니다. (루프를 돌면서 계속 출력하는 구조인데 시간이 많이 걸립니다..) 그럼, 미리 감사. ^_^ |