tags:

views:

88

answers:

5

How are negative number represented in 32-bit signed integer? Is it two's or one's complement? or the last bit on the left is like a flag? For example: (-10)

+3  A: 

Usually it's twos-complement.

duffymo
+5  A: 

Most computers these days use two's complement for signed integers, but it can vary by hardware architecture, programming language, or other platform-specific issues.

For a two's-complement representation, the leftmost bit is referred to as the sign bit, and it will be set for a negative integer and clear for a non-negative integer. However, it is more than just a "flag". See the Wikipedia article for more information.

Kristopher Johnson
+1  A: 
0xFFFFFFFF = -1
0xFFFFFFFE = -2
0xFFFFFFFD = -3
... 

& so on

zed_0xff
A: 

The most significant bit (last bit on the left) is set for negative numbers.

kirk.burleson
Do you mean "first bit on the left"?
aaaa bbbb
How about "first bit FROM the left" or "Last bit FROM the right". :)
kirk.burleson
+1  A: 

From the C99 standard:

For signed integer types, the bits of the object representation shall be divided into three groups: value bits, padding bits, and the sign bit. There need not be any padding bits; there shall be exactly one sign bit. Each bit that is a value bit shall have the same value as the same bit in the object representation of the corresponding unsigned type (if there are M value bits in the signed type and N in the unsigned type, then M = N). If the sign bit is zero, it shall not affect the resulting value. If the sign bit is one, the value shall be modified in one of the following ways:

— the corresponding value with sign bit 0 is negated (sign and magnitude);

— the sign bit has the value -(2N) (two’s complement);

— the sign bit has the value -(2N - 1) (ones’ complement).

Which of these applies is implementation-defined, as is whether the value with sign bit 1 and all value bits zero (for the first two), or with sign bit and all value bits 1 (for ones’ complement), is a trap representation or a normal value. In the case of sign and magnitude and ones’ complement, if this representation is a normal value it is called a negative zero.

jim mcnamara