FP16 gibi kayan nokta biçimlerinde ondalık kısmın tamamı her zaman korunamaz; bu yüzden sayı kırpılır (truncate). Kaybı en aza indirmek için, kırpılan kısmın ardından gelen bitlere bakarak bir yuvarlama kuralı uygularız.
Bu yazıda kullanılan yöntem round‑to‑nearest‑even (en yakın‑çifte).
Örnek
16 bit ikili sayı: 1110110100101111
Bunu 10 bit’e kısaltmak istiyoruz.
Kırpma sonrası depolanacak kısım: 1110110100
Kırpılan kısım: 101111
Yuvarlama kararında iki bilgiye bakılır:
- Guard Bit: Depolanan kısmın hemen sonraki bit. Veya kırpılan kısmın ilk biti.
- Sticky Bit: Guard bittinden sonra kalan tüm bitlerin OR sonucu (en az bir tane 1 varsa sticky=1).
Bu örnekte:
- Guard bit = 1
- Sticky bit = 1 (çünkü guarddan sonra en az bir tane 1 var)
Kural:
- Guard 0 → yuvarlama yok.
- Guard 1 ve Sticky 1 → yukarı yuvarla.
- Guard 1 ve Sticky 0 → aşağı yuvarla.
Bu nedenle depolanacak 10 bitlik sayı 1110110100
idi.
Round‑to‑nearest‑even kuralına göre son bit kontrol edilir → burada yukarı yuvarlama gerekir:
Sonuçta depolanacak sayı: 1110110101
Not
- Son bit zaten 1 ise (yukarı yuvarlama durumu), değer değişmez.
- Son bit 0 ise (aşağı yuvarlama durumu), değer değişmez.
- Bu örnekte 10. bit 0 olduğundan, yukarı yuvarlama ile 1 olmuştur.