Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!

# 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 ...