Im Grunde bedeutet "Sättigung", dass Werte jenseits einiger "max" -Werte auf "max" und Werte unterhalb von "min" auf "min" gesetzt werden. Normalerweise sind "min" und "max" die Werte, die für einen bestimmten Datentyp geeignet sind.
Wenn Sie beispielsweise Arithmetik für vorzeichenlose Bytes nehmen, müsste "128 + 128" "256" sein (was hex 0x100 ist), das nicht in ein Byte passt. Normale Integer-Arithmetik würde einen Überlauf erzeugen und den Teil, der nicht passt, verwerfen, was "128 + 128 -> 0" bedeutet. Bei gesättigter Arithmetik "256> 255" ist das Ergebnis also 255.
Eine andere Option wäre die Skalierung, die die Werte im Grunde auf einen kleineren Bereich "komprimiert". Sättigung schneidet sie einfach ab.
Sie können auch größere Typen in kleinere Typen einfügen, z. B. 16-Bit-Werte in 8-Bit-Werte setzen. Ihr Beispiel macht wahrscheinlich genau das, obwohl Sie wahrscheinlich besser als ich wissen werden, mit welchen Typen Sie es zu tun haben.
"UnsignedSaturation" hat höchstwahrscheinlich eine min von "0" und eine "max" von was auch immer der max des Ergebnistyps ist. Somit werden negative Eingaben in "0" umgewandelt.