Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

confused about the “~” operator

 
Preety Narashimhan
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Was a little bit confused about the “~” operator. Please clarify.
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey tx for that "bit" of information worked wonders for me ...
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic