20 bayt
Başvuru için, bu boşluk olmadan ve işlev isimlendirmeden orijinal sürümüdür:
n=>n>0?n<255?n:255:0
Çevrimiçi deneyin!
19 bayt
Üçlü testlerin mantığını tersine çevirerek ve büyük n>>8
olup olmadığını test etmek için bir bayt kurtarabiliriz . Bitsel işlem nedeniyle, bu için başarısız olur .n255n≥232
n=>n<0?0:n>>8?255:n
Çevrimiçi deneyin!
19 bayt
Bu , yerine döndürür ancak .false0n≥232
n=>n>255?255:n>0&&n
Çevrimiçi deneyin!
18 bayt
Yukarıdaki her iki sürümü de birleştirerek, ve için döndüren bir işlevle .256−232≤n<232falsen<0
n=>n>>8?n>0&&255:n
Çevrimiçi deneyin!
Yorumlananlar
n => // n = input number
n >> 8 ? // if n is greater than 255 or n is negative:
n > 0 && // return false if n is negative
255 // or 255 otherwise
: // else:
n // return n unchanged
(Bu, yorumlarda @ValueInk tarafından önerilen kodun sabit bir revizyonudur .)
17 bayt
Geçerli giriş aralığını sınırlandırarak bir adım daha ileri gidebiliriz :−224<n≤224
n=>n>>8?-n>>>24:n
Çevrimiçi deneyin!
Yorumlananlar
n => // n = input number
n >> 8 ? // if n is greater than 255 or n is negative:
-n >>> 24 // non-arithmetic right-shift of -n by 24 positions
: // else:
n // return n unchanged