728x90
muldiv64 함수는 오버플로(Overflow)의 공포 없이 큰 수를 다루는 정밀 연산 함수입니다.
어떤 동작을 하나?
A x B / C 연산을 하죠
A, B, C 모두 64bit 정수일 때 중간 값 오버플로우(A x B 과정) 없이 정확한 결과를 반환해요
Real world
Case 1: 리눅스 커널 시간 변환 (Timekeeping)
CPU 사이클(Ticks) → 나노초(ns)
Nanoseconds = Cycles x NSEC_PER_SEC / Frequency
Cycles가 조금만 커져도 10^(9)를 곱하는 순간 overflow 발생
muldiv64를 쓰면 overflow 없이 연산 가능
Case 2: 동영상 싱크 맞추기 (FFmpeg/Gstreamer)
비디오 타임스탬프 (PTS) 변환
PTS (new) = PTS (old) x Timebase (new) / Timebase (old)
PTS (old)가 거대해지면 overflow 발생 가능
muldiv64 쓰면 overflow 없이 연산 가능
Mechanism
비트를 쪼개서 계산하고 합침
이해 못함;;
728x90
'TIL > 2026' 카테고리의 다른 글
| find, grep 그리고 xargs 완벽 구분 (0) | 2026.02.12 |
|---|---|
| UEFI 무엇인가 (0) | 2026.02.12 |
| Suspend to RAM (0) | 2026.02.12 |
| Main 보다 먼저 호출되는 코드가 있다?! (0) | 2026.01.21 |
| VectorCAST : clicast vs DATA API (manage) (0) | 2026.01.07 |