| delorie.com/archives/browse.cgi | search |
| From: | Dave Bird <dave AT xemu DOT demon DOT co DOT uk> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: Bitshifting |
| Date: | Fri, 29 Jan 1999 18:23:41 +0000 |
| Organization: | very little |
| Message-ID: | <a4$UbmAtyfs2EwxV@xemu.demon.co.uk> |
| References: | <36B1EDB5 DOT 53C1FDCB AT net4you DOT co DOT at> |
| NNTP-Posting-Host: | xemu.demon.co.uk |
| X-NNTP-Posting-Host: | xemu.demon.co.uk:158.152.196.209 |
| X-Trace: | news.demon.co.uk 917640953 nnrp-11:10242 NO-IDENT xemu.demon.co.uk:158.152.196.209 |
| X-Complaints-To: | abuse AT demon DOT net |
| MIME-Version: | 1.0 |
| X-Newsreader: | Turnpike (32) Version 4.01 <dQumtnY$x4rJ2u5tL5fS$n2vuP> |
| Lines: | 25 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
In article <36B1EDB5 DOT 53C1FDCB AT net4you DOT co DOT at>, Seawolf
<seawolf AT net4you DOT co DOT at> writes
>Why does this code work with DJGPP but not with Borland C 3?
>
>int value = 0x000F;
>unsigned long c;
>
>c = value + (value<<8) + (value<<16) + (value<<24);
>
>DJGPP produces the correct 0x0F0F0F0F.
>But Borland C 3.1 only does the last two bytes: 0x00000F0F
Your EARLY version of Borland thinks that int is 16 bits signed,
long is 32 bits signed.
Your problem will be fixed if you do unsigned long value=0x000F;
It is not true that this is a problem with Borland GENERALLY:
if you upgrade to version five, ints are 32 bit.
--
^-^-^-@@-^-;-^ http://www.xemu.demon.co.uk/
(..)__u news:alt.smoking.mooses
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |