*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes two's complement to original Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "two Watch "two New topic
Author

two's complement to original

Akhilesh Trivedi
Ranch Hand

Joined: Jun 22, 2005
Posts: 1511
Basic to bits are bugging me...
Java stores negative numbers in form of two's complement. Ok! I know what two's complement is all about, turning 0's to 1's, 1's to 0's and adding a 1 to it. So let us say to store -7 in java way, I do a two's complement of its binary equivalent

0000 0000 0000 0000 0000 0000 0000 0111

and get

1111 1111 1111 1111 1111 1111 1111 1001.

Now, how do I revert back to -7 from here? I mean how do you say that it is a negative number and that it equals to seven, ok forget about the sign part that will be known by MSB, but what about value? :roll:

[ July 04, 2005: Message edited by: Akhil Trivedi ]
[ July 04, 2005: Message edited by: Akhil Trivedi ]

Keep Smiling Always — My life is smoother when running silent. -paul
[FAQs] [Certification Guides] [The Linux Documentation Project]
Marc Marechal
Greenhorn

Joined: Apr 15, 2005
Posts: 17
Hi,

It is the same thing : turns ones to zeros, and add one.

Marc.
Akhilesh Trivedi
Ranch Hand

Joined: Jun 22, 2005
Posts: 1511
I get you marc, and as you said it goes like this...

0000 0000 0000 0000 0000 0000 0000 0111

i.e.

+7

If I leave MSB then

1000 0000 0000 0000 0000 0000 0000 0111

it goes somewhere else..

So given a binary number, you look at its MSB
if its 0-- then number is positive, nothing to do, just find the value.
if its 1-- then number is negative and is in its two's complement format, to find its value again take two's complement (including MSB) .

Thanks a lot marc. :-)
 
 
subject: two's complement to original
 
Similar Threads
conversion q
hexadecimal format
~ operator, explanation needed
octal/hex/binary/unicode ?
~(Bitwise Complement Operator) doubt