在Haskell中,似乎通过OS X El Capitan: Start up in safe mode和Bits类来处理逐位操作。
我想对任何长度的ByteStrings执行位操作(例如set,clear,shift,mask ...)但是我无法在任何地方找到ByteStrings的Bits实例。
我的问题:我应该自己实施该实例(可能是一个很好的练习)?如果有的话,是否有任何建议可以获得一些可接受的表现"?或者尝试直接在ByteStrings上进行位操作是一个坏主意,在这种情况下,什么是更好的方法?
答案 0 :(得分:1)
我无法理解为什么这是一个坏主意。如果你想成为超级将军,你可以实施
instance (Listlike l a, Bits a) => Bits (l a) where ...
这将为您提供任何list-like类型的比特实现,该实施适用于include Bytestrings。
答案 1 :(得分:0)
我发现Hackage上的bits-bytestring包提供了你所要求的内容。
但是我会对一些操作小心,如果不是所有的字节串都长度相同。特别是,哪些位由complement
设置取决于字节串的长度。