From: John Benediktsson Date: Wed, 27 Jul 2022 22:41:17 +0000 (-0700) Subject: math.bits: make zero encode as one false bit. X-Git-Tag: 0.99~1320 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=ab2d1bbb50996d3611bf3a3f8eccb9a33d4119ca math.bits: make zero encode as one false bit. --- diff --git a/basis/math/bits/bits-tests.factor b/basis/math/bits/bits-tests.factor index c8d038acc5..160c040cc1 100644 --- a/basis/math/bits/bits-tests.factor +++ b/basis/math/bits/bits-tests.factor @@ -8,9 +8,9 @@ USING: tools.test math math.bits sequences arrays ; { { f f t } } [ 0b111100 3 >array ] unit-test { 3 } [ 0b111111 3 length ] unit-test { 6 } [ 0b111111 make-bits length ] unit-test -{ 0 } [ 0 make-bits length ] unit-test -{ 2 } [ 3 make-bits length ] unit-test +{ 1 } [ 0 make-bits length ] unit-test { 1 } [ 1 make-bits length ] unit-test +{ 2 } [ 3 make-bits length ] unit-test [ -3 make-bits length ] [ non-negative-integer-expected? ] must-fail-with ! Odd bug diff --git a/basis/math/bits/bits.factor b/basis/math/bits/bits.factor index 4b94a3c733..9f345986aa 100644 --- a/basis/math/bits/bits.factor +++ b/basis/math/bits/bits.factor @@ -11,7 +11,7 @@ C: bits : make-bits ( number -- bits ) check-negative-bits - [ T{ bits f 0 0 } ] [ dup abs log2 1 + ] if-zero ; inline + [ T{ bits f 0 1 } ] [ dup abs log2 1 + ] if-zero ; inline M: bits length length>> ; inline