Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Fri, 09 Mar 2012 16:53:55 -0600 Message-ID: <4F5A8A03.3657@mindspring.com> Date: Fri, 09 Mar 2012 17:53:55 -0500 From: pete Reply-To: pfiland@mindspring.com Organization: PF X-Mailer: Mozilla 3.04Gold (WinNT; I) MIME-Version: 1.0 Newsgroups: comp.lang.c Subject: Re: difference between ~0U and ~0 References: <6ee3baa7-5370-4fb6-acfe-262f2bc6036e@sc10g2000pbc.googlegroups.com> <4F58BA48.527D@mindspring.com> <24006453.364.1331218377093.JavaMail.geo-discussion-forums@vbcu2> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 34 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 4.154.221.196 X-Trace: sv3-z5oxS729/SDUtdd3/A+IMN55rOMqxIHA3VpgzeZd6DRVhNnkw96lLy15B1EKN8YVRhC74vQpTTu8XVy!uBgV5hj8+fM6MhkoJ96q9Mb6XOTgjBEnxra1hIK0xwFYc/NB+NLldZ+ftmCUfahNb/fMQ21Aotkb!lnOJcbM7PZE= X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 1984 X-Received-Bytes: 2125 Xref: csiph.com comp.lang.c:18415 James Piper wrote: > > On Thursday, March 8, 2012 8:55:20 AM UTC-5, pete wrote: > > somenath wrote: > > > > > According to my understanding ~0 is -1. > > > So I will get all bit 1 as a > > > result of ~0 in 2's complement system. > > > > Close, but backwards. > > > > ~0 is all bit 1. > > > > So you will get -1 as a > > result of ~0 in 2's complement system. > That's true. > > 1 in 8-bit format is: 0000 0001 > To get neg- 1: > 1. Negate bits. 1111 1110 > 2. Add 1: 1111 11111 > > Same results regardless of the bit size. Another way for negatising in two's complement is: 1. subtract 1. 0000 0000 2. Negate bits: 1111 11111 I've worked on assembly code that had it done either way in different parts of the code. I don't know if it was done by the same person. -- pete