Is signed zero always available?

Christopher Reimer christopher_reimer at icloud.com
Wed Jun 22 18:50:59 EDT 2016


> On Jun 22, 2016, at 7:59 AM, Grant Edwards <grant.b.edwards at gmail.com> wrote:
> 
>> On 2016-06-22, Random832 <random832 at fastmail.com> wrote:
>>> On Wed, Jun 22, 2016, at 10:19, Grant Edwards wrote:
>>> 
>>> Is that guaranteed by Python, or just a side-effect of the
>>> implementation?  Back in the days when Python used native C
>>> integers I think the latter.
>> 
>> AIUI, native C integers have never reliably supported signed zero
>> even with representations that naively seem to have it. There's no
>> well-defined way to detect it - no int version of copysign, for
>> instance - and implementations are free to erase the distinction on
>> every load/store or define one of them to be a trap representation.
> 
> It's been almost 25 years since I used hardware that supported signed
> zero integers (CDC 6600).  I don't recall there being a C compiler
> available.  We used Pascal and assembly, though I think FORTRAN was
> what most people used.  I don't recall whether the Pascal
> implementation exposed the existence of -0 to the user or not.

When I took mathematics in college, the following was true:

-1 * 0 = 0

I would probably have gotten rapped on the knuckles by my instructors if I answered -0. Zero was zero. No plus or minus about that. No discussion of signed integers ever mentioned signed zero.

Did I miss something in college?

Or did -0 represent zero volts on the negative rail of an op-amp in electronics? 

Thank you,

Chris R.


More information about the Python-list mailing list