Hi

Not sure if I am in the correct place on this forum but this is the nearest area I could find.

Basically I have one question regarding converting binary numbers to two's complement negative binary numbers.

From what I have read you add a 1 if it's negative after inverting all the numbers. What if there is already a 1 at the beginning. Do you move to the next 0 and change it to a 1 to negate it?

Thanks

Let me explain this using an example:
If we want to store number -6 as a binary value we use the two complement:
-> Assume we're working with a byte ...
-> If we set all bits of a byte to '1' we get 11111111 which corresponds with the decimal number 255 -> Now we increase the corresponding decimal value (if all bits of the binary number are set to '1') by '1' so we get 256 (255+1) -> Now we subtract 6 from 256: 256-6 = 250 (this is the two complement of '-6') ...

=> Now if we want to subtract 6 from 17 what do we do ?
-> Well, first we rewrite '-6' as it's two complement as described above ...
-> Since 17-6 is actually the same as 17+ -6 , we can rewrite this expression using the two-complement: 17+250
-> If we make the addition of 17 and 250 the result is equal to 267 (17+250) which corresponds with 100001011 in binary ...
-> Now we just throw away the first bit and what we keep is the following: (1)00001011 which corresponds with the decimal number 11 and that's the exact result of 17-6 :) ...
The (1) in (1)00001011 is the indication of the bit we threw away ...

Hope this helps !

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.