On Fri, Aug 21, 2015 at 05:03:53PM -0300, Roberto Ierusalimschy wrote: > > In other words, just because the machine uses ones' complement doesn't mean > > there's a negative 0. [...] > > Is there any machine nowadays that use ones' complement? > Not that I'm aware of, other than the Unisys mentioned by Jay Carlson. But I think sometime in the past few years Unisys replaced the ASICs with software emulation on Intel Xeons, although I can't remember where I read that. Here's a manual to the C compiler for ClearPath OS 2200. http://public.support.unisys.com/2200/docs/cp16.0/pdf/78310422-012.pdf http://public.support.unisys.com/2200/docs/cp16.0/pdf/78310430-017.pdf "UCS C represents an integer in 36-bit ones complement form (or 72-bit ones complement form, if the long long type attribute is specified)." Volume 1 Section 6.1.1. The MCP mainframe line (previously Burroughs) uses signed-magnitude. http://public.support.unisys.com/aseries/docs/clearpath-mcp-17.0/pdf/86002268-206.pdf http://public.support.unisys.com/aseries/docs/clearpath-mcp-17.0/pdf/86002278-305.pdf "Integer type representation differs between A Series C and C language on most other machines. A Series C uses a signed-magnitude representation for integers instead of two's-complement representation." Volume 1 p C-8. Intel's new MPX extension uses ones' complement for storing address bounds, but that's not as relevant.