From: Charles Hixson Date: 2000-09-12T02:23:22+09:00 Subject: [ruby-talk:4853] Re: FEATURE REQUEST: Fixnum bitfields This is a multi-part message in MIME format. --------------FFD28B6DB347B3A976E8662E Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Yukihiro Matsumoto wrote: > Hi, > > In message "[ruby-talk:4849] FEATURE REQUEST: Fixnum bitfields" > on 00/09/12, Wayne Scott writes: > > |why not: > | > |fixnum[bit,len] access a bitfield in number > |bignum[bit,len] access a bitfield in number > > Do you mean 0xbabe[16,8] returns 0xba? > Hmm, is this useful? Or just for completeness? > > |fixnum[Range] access a bitfield in number > |bignum[Range] access a bitfield in number > > Same as above. I agree with your friend. Persuade me. > > |While I am on the subject of bitfields where is another question. > |Supose I read a series or raw 256 bit data chunks from a file into > |Strings. How can I transfer them to Bignum's so i can do bitwise ORs > |and ANDs on them. (I want to convert my CRC checksum generator for > |CPU caches from perl to Ruby.) > > def bits2num(str) > n = 0 > str.each_byte do |c| > n <<= 8 > n |= c > end > n > end > > matz. Some implementation of bit fields would certainly be nice. Personally, I lean toward packed arrays of boolean, but something that could extract a set of flags from a word in one pass is a bit more flexible. The proposal of syntax makes sense, and increasing the symmetries is good. OTOH, this isn't a frequently needed feature, so perhaps library routines are a better approach. Still, there's lots of things that are best implemented as sets, and bit strings are the classic way to implement small sets. Sometimes making a feature available opens up whole new styles of programming. Look at what making grep style patterns available within the language did to the way they are used. --------------FFD28B6DB347B3A976E8662E Content-Type: text/x-vcard; charset=us-ascii; name="charleshixsn.vcf" Content-Transfer-Encoding: 7bit Content-Description: Card for Charles Hixson Content-Disposition: attachment; filename="charleshixsn.vcf" begin:vcard n:Hixson;Charles x-mozilla-html:FALSE org:MTC adr:;;;;;; version:2.1 email;internet:charleshixsn@earthlink.net title:Data Analyst x-mozilla-cpt:;0 fn:Charles Hixson end:vcard --------------FFD28B6DB347B3A976E8662E--