TIL/2026

muldiv64 는 무엇인가?

고무 오리 2026. 1. 21. 18:04
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