programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# confused about the &#8220;~&#8221; operator

Preety Narashimhan
Greenhorn
Posts: 28
Consider this eg:
3 is represented in the binary form in this manner
00000000 00000000 00000000 00000011
When we say ~3 we invert the “0” bits to “1” right?
So it becomes
11111111 11111111 11111111 11111100
which when converted into decimal becomes :
………+16+8+4+0+0
right? And since the last higher bit is “1” it is a negative number.
Then how is ~3 = -4??? What is the binary format of –4??
I feel
00000000 00000000 00000000 00000100 = 4
10000000 00000000 00000000 00000100 = -4
Is this rite?
Please correct me if I am wrong.

Thomas Paul
mister krabs
Ranch Hand
Posts: 13974
Nope. Negative numbers are stored in twos compliment form.
00000000 00000000 00000000 00000100 = 4
11111111 11111111 11111111 11111011 = swap all the digits
11111111 11111111 11111111 11111100 = now add 1
And that's how negative numbers are stored.

Dirk Schreckmann
Sheriff
Posts: 7023
You may want to take a look at this past conversation on the ~ operator. David posted a nice looking link at the end of it.

Preety Narashimhan
Greenhorn
Posts: 28
Hey tx for that "bit" of information worked wonders for me ...