add toggle-bit word to math.bitwise
parent
9d03a591cf
commit
a4860c3173
|
@ -204,8 +204,25 @@ HELP: on-bits
|
|||
"64 on-bits .h"
|
||||
"ffffffffffffffff"
|
||||
}
|
||||
} ;
|
||||
|
||||
HELP: toggle-bit
|
||||
{ $values
|
||||
{ "m" integer }
|
||||
{ "n" integer }
|
||||
{ "m'" integer }
|
||||
}
|
||||
;
|
||||
{ $description "Toggles the nth bit of an integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"0 3 toggle-bit .b"
|
||||
"1000"
|
||||
}
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"BIN: 1000 3 toggle-bit .b"
|
||||
"0"
|
||||
}
|
||||
} ;
|
||||
|
||||
HELP: set-bit
|
||||
{ $values
|
||||
|
|
|
@ -29,3 +29,6 @@ IN: math.bitwise.tests
|
|||
\ foo must-infer
|
||||
|
||||
[ 1 ] [ { 1 } flags ] unit-test
|
||||
|
||||
[ 8 ] [ 0 3 toggle-bit ] unit-test
|
||||
[ 0 ] [ 8 3 toggle-bit ] unit-test
|
||||
|
|
|
@ -17,6 +17,7 @@ IN: math.bitwise
|
|||
: bits ( m n -- m' ) 2^ wrap ; inline
|
||||
: mask-bit ( m n -- m' ) 2^ mask ; inline
|
||||
: on-bits ( n -- m ) 2^ 1- ; inline
|
||||
: toggle-bit ( m n -- m' ) 2^ bitxor ; inline
|
||||
|
||||
: shift-mod ( n s w -- n )
|
||||
[ shift ] dip 2^ wrap ; inline
|
||||
|
|
Loading…
Reference in New Issue