Re: Hexadecimal numbers in Eu
- Posted by CoJaBo <cojabo at suscom.net> Sep 20, 2004
- 454 views
cklester wrote: > > Unkmar wrote: > > > > ----- Original Message ----- > > From: "Derek Parnell" <guest at RapidEuphoria.com> > > To: <EUforum at topica.com> > > Sent: Sunday, September 19, 2004 10:42 AM > > Subject: Re: Hexadecimal numbers in Eu > > > > > > > posted by: Derek Parnell <ddparnell at bigpond.com> > > > > > > Juergen Luethje wrote: > > > > > > > > Robert Craig wrote: > > > > > > > > > Juergen Luethje wrote: > > > > >> > > > > >> Derek Parnell wrote: > > > > >> > > > > >>> Juergen Luethje wrote: > > > > >>>> > > > > >>>> Hi, > > > > >>>> > > > > >>>> in some other programming languages, hex numbers can represent > > positive > > > > >>>> or negative values. E.g. in PowerBASIC 3.2, > > > > >>>> ? &hFFF0 ' prints -16 > > > > >>>> ? &h00F0 ' prints 240 > > > > >>>> > > > > >>>>> From what I read at 'refman_2.htm#1' (Eu 2.4), and from my > > experience, > > > > >>>> I have the impression that hexadecimal numbers (that don't have a > > '-' > > > > >>>> sign at the beginning) in Euphoria _always_ have positive values. > > > > >>>> > > > > >>>> Rob, is this true? > > > > >>>> > > > > >>>> In Euphoria, e.g. > > > > >>>> }}} <eucode> > > > > >>>> ? #FFF0 -- prints 65520 > > > > >>>> ? #00F0 -- prints 240 > > > > >>>> </eucode> {{{ > > > > >>> > > > > >>> > > > > >>> Yes, hexadecimal literals are always positive unless they have a > > leading > > > > >>> minus symbol. > > > > >> > > > > >> Rob, maybe this sentence could be added to the docs? I think it will > > be > > > > >> very helpful for beginners -- and people like me, who sometimes feel > > > > >> like beginners. > > > > > > > > > > OK, I'll say something in the docs about this. > > > > > > > > Thanks, that will eliminate ambiguity. > > > > > > > > >>> However it is a bit confusing because negative integers, when > > converted > > > > >>> to display as hex digits via the printf() routine, display without > > > > >>> the minus sign. > > > > >>> > > > > >>> printf(1, "%x", -1) --> FFFFFFFF > > > > >> > > > > >> Yes, this actually confused me some days ago!! Thanks, Derek! > > > > >> > > > > >> Rob, is there any chance that in a future version of Euphoria, > > > > >> printf(1, "%x", -1) > > > > >> will show '-1' or '-#1' instead of 'FFFFFFFF'? > > > > > > > > > > Euphoria's %x format for printf() uses C's %x format, > > > > > and only works for numbers up to 32-bits in size. > > > > > }}} <eucode> > > > > > printf(1, "%x", #FFFFFFFF) > > > > > </eucode> {{{ > > > > > displays FFFFFFFF > > > > > as does: > > > > > }}} <eucode> > > > > > printf(1, "%x", -1) > > > > > </eucode> {{{ > > > > > but Euphoria does *not* consider #FFFFFFFF to be equal to -1. > > > > > > > > Either it should do so, or > > > > }}} <eucode> > > > > printf(1, "%x", -1) > > > > </eucode> {{{ > > > > should *not* display FFFFFFFF!! > > > > This is a great inconsistency, and a source for confusion (as Derek > > > > wrote, too) and bugs. > > > > > > > > > When people are printing numbers with %x format > > > > > they usually want to see -1 displayed as FFFFFFFF, > > > > > > > > It depends. E.g. people who are new to programming probably would not > > > > expect anything, because it will be the first time they deal with hex > > > > numbers, and they just learn what they see. > > > > > > > > > I'll interject just here because we probably should understand the <snip> > > -=ck > "Programming in a state of EUPHORIA." > <a > href="http://www.cklester.com/euphoria/">http://www.cklester.com/euphoria/</a> >