extra-integer.web
Version:
A 32-bit integer can store values from -2^31 to 2^31 - 1 {web}.
1 lines • 869 B
JavaScript
const MIN_VALUE=-2147483648,MAX_VALUE=2147483647;function is(n){return"number"==typeof n&&isFinite(n)&&(0|n)===n}function abs(n){var o=n>>31;return n+o^o}function signEqual(n,o){return(n^o)>=0}function isPow2(n){return!(n&n-1)}function prevPow2(n){return nextPow2(n+1)>>>1}function nextPow2(n){return n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,(n|=n>>>16)+1}function pow2(n){return 1<<n}const POW10_VAL32=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function pow10(n){return n<0?0:POW10_VAL32[n]}const DEBRUIJN_POS32=[0,9,1,10,13,21,2,29,11,14,16,18,22,25,3,30,8,12,20,28,15,17,24,7,19,27,23,6,26,5,4,31];function log2(n){return n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,DEBRUIJN_POS32[130329821*(n|=n>>>16)>>>27]}function log10(n){var o=1233*(log2(n)+1)>>>12;return o-(n<POW10_VAL32[o]?1:0)}export{MAX_VALUE,MIN_VALUE,abs,is,isPow2,log10,log2,nextPow2,pow10,pow2,prevPow2,signEqual};