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

Re: Twos complement assumption, other issues

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

It is difficult to keep straight.  In the specification section, the
description of LOGNOT incorrectly says two's-complement.