Hi Nicolas, On 2011-10-08 12:41 PM, nicolas.o...@gmail.com wrote: > I am trying to write a small implementation of Protocol Buffers > ( http://code.google.com/p/protobuf/ ) and I have difficulties > with bit manipulations, especially to transform a negative integer into > a series of bytes and back.
You might also be interested to try out (require (planet tonyg/bitsyntax)). The documentation is at http://planet.racket-lang.org/package-source/tonyg/bitsyntax.plt/3/2/planet-docs/manual/index.html If, for example, you wanted to parse a little-endian 32-bit length prefixed blob from a packet, you might write (bit-string-case packet ([ (len :: little-endian integer bits 32) (body :: binary bytes len) ] body)) The library supports arbitrary-width integers, and 32- or 64-bit floats. It uses the primitives that Matthew mentioned internally. Regards, Tony _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users