From ab2d1bbb50996d3611bf3a3f8eccb9a33d4119ca Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 27 Jul 2022 15:41:17 -0700 Subject: [PATCH] math.bits: make zero encode as one false bit. --- basis/math/bits/bits-tests.factor | 4 ++-- basis/math/bits/bits.factor | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 -- 2.34.1