Programming languages like Ada or VHDL define an integer datatype as -2^31+1 to 2^31-1. This rule goes back to CPUs with an one's complement ALU. It allows the program to run on one's and two's complement machines with the same behavior.

So is there any existing CPU implementation which uses one's complement?

  • Answer: Not likely to be any. Please see en.wikipedia.org/wiki/Two%27s_complement for more detail. – Hannu Oct 20 '16 at 19:58
  • You can create a datatype for 1's complement easily enough in most programming languages. It would basically be 2's complement but the value would be converted to 1's complement. – Ramhound Oct 20 '16 at 20:43
  • But for Ada and VHDL, you can't use -2^31 as a number in some language implementations, even if the underlying system supports it. The idea is to drop the restriction from the VHDL standard. – Paebbels Oct 20 '16 at 20:47
  • 1
    There is probably some ClearPath Dorado hardware still running and certainly systems are still on the market using emulation on top of Intel x86 processors (PDF: "The Dorado 8300 Series is one more example of Unisys commitment ... A key element of this initiative is the integration of market-leading technology, such as the latest Intel processor platforms"). – Paul A. Clayton Oct 21 '16 at 2:36

Unisys 1100/2200 legacy systems use 1's complement arithmetic, and this continues in the newer Dorado series.

Rather than there "perhaps" being some still in use, they are being actively developed and have scored some 7-figure sales in recent years.

Increasingly, the microcode is now emulated using commodity hardware rather than the expensive ECL (Emitter-Coupled Logic) that older processors used, but the bangs-per-buck hasn't made it to the top of the range yet, and big banks etc are still using the big iron.

E.g. Lloyds Banking Group's core banking system runs on a 32-processor cluster of Dorado processors, and Nationwide Building Society also did a tech refresh in recent years.

The Met police use this tech for their CAD (Computer Aided Despatch) system too.

Other big users include the New York state welfare system, Nike, Subaru, NATO....

| improve this answer | |
  • 1
    Oh, and the -0 value has an important use on Unisys systems; it's a value that can never result from an arithmetic operation in the CPU, so it's often used as a flag value. – Marc Wilson Jul 21 '17 at 18:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.