[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bitwise logical operators



   Date: Wed, 17 Jun 92 22:06:25 -0400
   From: "Aubrey Jaffer" <jaffer@martigny.ai.mit.edu>

      Date: Tue, 16 Jun 92 10:55:34 -0400
      From: jar@cs.cornell.edu (Jonathan Rees)

      No machine dependencies here; the semantics isn't sensitive to word
      size or integer representation.  I'll supply portable definitions on
      request.

   They are in SLIB as well.

      Having said that there has been no objection, let me disrupt this
      status quo and suggest some different names:

	  bitwise-and, bitwise-ior, bitwise-xor, bitwise-not, arithmetic-shift

      These are what Richard Kelsey calls them.  I've been using these names
      for about a year now and like them better than the Common Lisp names.
      They're more descriptive, and I would expect them to be easier for
      beginners to cope with.  And calling them "logical" implies that other
      operations on integers are illogical.

   These are fine with me.

      Any opinions on logcount (bit-count) and integer-length?

   I use INTEGER-LENGTH for gauging the size of integers, since LOG is
   not an essential procedure and the number of bits is what I really
   want anyway.  LOGCOUNT seems useful for determining if a number is
   exactly a power of 2.

(define power-of-two? (x) (= x (bitwise-and x (- x))))

But there are other reasons to want LOGCOUNT.

--Guy