USING: kernel math sequences ;
IN: io.binary
-: le> ( seq -- x ) B{ } like byte-array>bignum >integer ;
-: be> ( seq -- x ) <reversed> le> ;
+: le> ( seq -- x ) dup length iota 0 [ 8 * shift + ] 2reduce ;
+: be> ( seq -- x ) 0 [ [ 8 shift ] dip + ] reduce ;
-: mask-byte ( x -- y ) HEX: ff bitand ; inline
+: mask-byte ( x -- y ) 0xff bitand ; inline
: nth-byte ( x n -- b ) -8 * shift mask-byte ; inline
: >le ( x n -- byte-array ) iota [ nth-byte ] with B{ } map-as ;
-: >be ( x n -- byte-array ) >le dup reverse-here ;
+: >be ( x n -- byte-array ) >le reverse! ;
: d>w/w ( d -- w1 w2 )
- [ HEX: ffffffff bitand ]
- [ -32 shift HEX: ffffffff bitand ] bi ;
+ [ 0xffffffff bitand ]
+ [ -32 shift 0xffffffff bitand ] bi ;
: w>h/h ( w -- h1 h2 )
- [ HEX: ffff bitand ]
- [ -16 shift HEX: ffff bitand ] bi ;
+ [ 0xffff bitand ]
+ [ -16 shift 0xffff bitand ] bi ;
: h>b/b ( h -- b1 b2 )
[ mask-byte ]