This page is part of the web mail archives of SRFI 60 from before July 7th, 2015. The new archives for SRFI 60 contain all messages, not just those from before July 7th, 2015.
| Date: Thu, 27 Jan 2005 11:04:24 -0800 | From: "Bradd W. Szonye" <bradd+srfi@xxxxxxxxxx> | | Aubrey Jaffer wrote: | > Since we treat integers as having two's-complement negations, | > the two's-complement of an integer is its negation. The | > one's-complement of an integer is computed by lognot: | > | > (define (lognot n) (- -1 n)) | | Isn't that backwards? Complement and negation are equivalent in | ones- complement arithmetic; in twos-complement, the complement is | equal to negation minus one. Perhaps I'm not understanding your | explanation clearly. Taking the one's-complement of a number is the process of exchanging '1' for '0' and '0' for '1'. That is LOGNOT. When we talk of *'s-complement representation, it is about which process is used to negate a number. SRFI-60 treats its integers as two's-complement. Therefore the process of taking the one's-complement is different from the native negation. It is difficult to keep straight. In the specification section, the description of LOGNOT incorrectly says two's-complement.