Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!selfless.tophat.at!news.glorb.com!postnews.google.com!news2.google.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, 13 May 2011 22:19:34 -0500 Message-ID: <4DCDF4CC.7B20@mindspring.com> Date: Fri, 13 May 2011 23:19:40 -0400 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: Would someone tell me if I'm on the wrong track? References: <70cf2865-5c4a-47a5-a8e8-ac369c2b91b3@k22g2000yqh.googlegroups.com> <4dca2cf0$0$18239$4fafbaef@reader2.news.tin.it> <35d5a07f-b868-4f6e-83fd-e333baba79fc@gu8g2000vbb.googlegroups.com> <0.3cd58643cabd7ca9ddca.20110514033459BST.87wrhuxb58.fsf@bsb.me.uk> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 25 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 4.154.219.211 X-Trace: sv3-v9NxQwp35YG2yGSKDyXHnT7odOo3rWZj22JIEynDZMhiA0qvIx6VJuIPpV3iMmyc56uZV5D/BM6tRSA!/LDvUERD2aDd7Ld7ko/ajLB6iYs64lAxU5RCgYEuA95wrX4T/QwiLMFF9vanDnxtIoI8JRto6ijj!zk7e6QlZtwU= 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: 2077 Xref: x330-a1.tempe.blueboxinc.net comp.lang.c:3930 Ben Bacarisse wrote: > > Seebs writes: > > > On 2011-05-12, luser- -droog wrote: > >> unsigned sz; > >> (int) sz < 0 > >> > >> Does this just check the high bit (assuming 2's complement)? > > > > Not necessarily. > > > > If you're comfortable assuming 2s complement, I bet you can do better with: > > sz > INT_MAX > > The assumption is not 2's complement as far as I can see. Your test > works in all of C's three permitted signed integer representations (how > can it not? -- it does not involve any signed integers). It fails if > unsigned int has more then one more value bit that signed int. Also if unsigned int has less than one more value bit than signed int. -- pete