Re: Twos complement assumption, other issues Aubrey Jaffer 29 Jan 2005 00:53 UTC
| Date: Thu, 27 Jan 2005 11:04:24 -0800 | From: "Bradd W. Szonye" <email@example.com> | | 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.