<P> Ones' complement allowed for somewhat simpler hardware designs as there was no need to convert values when passed to and from the math unit . But it also shared an undesirable characteristic with sign - magnitude--the ability to represent negative zero (− 0). Negative zero behaves exactly like positive zero; when used as an operand in any calculation, the result will be the same whether an operand is positive or negative zero . The disadvantage, however, is that the existence of two forms of the same value necessitates two rather than a single comparison when checking for equality with zero . Ones' complement subtraction can also result in an end - around borrow (described below). It can be argued that this makes the addition / subtraction logic more complicated or that it makes it simpler as a subtraction requires simply inverting the bits of the second operand as it is passed to the adder . The PDP - 1, CDC 160 series, CDC 3000 series, CDC 6000 series, UNIVAC 1100 series, and the LINC computer use ones' complement representation . </P> <P> Two's complement is the easiest to implement in hardware, which may be the ultimate reason for its widespread popularity . Processors on the early mainframes often consisted of thousands of transistors--eliminating a significant number of transistors was a significant cost savings . Mainframes such as the IBM System / 360, the GE - 600 series, and the PDP - 6 and PDP - 10 use two's complement, as did minicomputers such as the PDP - 5 and PDP - 8 and the PDP - 11 and VAX . The architects of the early integrated circuit - based CPUs (Intel 8080, etc .) chose to use two's complement math . As IC technology advanced, virtually all adopted two's complement technology . x86, m68k, Power Architecture, MIPS, SPARC, ARM, Itanium, PA - RISC, and DEC Alpha processors are all two's complement . </P> <P> This representation is also called "sign--magnitude" or "sign and magnitude" representation . In this approach, the problem of representing a number's sign can be to allocate one sign bit to represent the sign: setting that bit (often the most significant bit) to 0 is for a positive number or positive zero, and setting it to 1 is for a negative number or negative zero . The remaining bits in the number indicate the magnitude (or absolute value). Hence, in a byte with only seven bits (apart from the sign bit), the magnitude can range from 0000000 (0) to 1111111 (127). Thus numbers ranging from − 127 to + 127 can be represented once the sign bit (the eighth bit) is added . For example, − 43 encoded in an eight - bit byte is 10101011 while 43 is 00101011 . A consequence of using signed magnitude representation is that there are two ways to represent zero, 00000000 (0) and 10000000 (− 0). </P> <P> This approach is directly comparable to the common way of showing a sign (placing a "+" or "−" next to the number's magnitude). Some early binary computers (e.g., IBM 7090) use this representation, perhaps because of its natural relation to common usage . Signed magnitude is the most common way of representing the significand in floating point values . </P>

Which method of representation has two representations for 0