[fpc-devel] Efficient way to inc loop over hexadecimal values

ik idokan at gmail.com
Wed Nov 22 13:17:33 CET 2006

On 11/22/06, Dominique Leducq <dleducq at magellan-ing.fr> wrote:
> ik a écrit :
> > Hi List,
> >
> > I have two cardinal numbers that represent ranges.
> >
> > The 10 base value of that two variables are useless and far from
> > having any meaning for my needs.However the hexa number does have
> > meaning after I'm changing the network order (aka big endian).
> >
> > I can think on many non efficient ways to while loop with inc but not
> > even one way to inc it in an efficient way.
> >
> > So, I'm looking for an efficient way to loop from left range to right
> > range when the values are in Hexa-decimal.
> >
> > Thank you for any help on this matter,
> >
> > Ido
> I'm afraid I don't understand your problem. Decimal or hexadecimal are
> string representation formats, cardinal and integer values are stored
> and dealt with internally in binary form !
> If your values are hexadecimal number stored in strings, why not convert
> them first to Cardinal ?
> Could you perhaps give an example or be more precise ?

OK, I have (for this example, taken from my own testing) the following numbers:
Decima numbers: a = 3616538624 b = 3616669696
The hexa values are: a = D7900000 b = D7920000

As you can see the range differences between the decimals are way
bigger then the hexa values.

The thing is that the hexa numbers represent chars of a UTF-8
encoding. D790 is the char "א".
(http://www.utf8-chartable.de/unicode-utf8-table.pl look for Hebrew).

So I wish to run on the range between a..b (in Hexa) and to have all
of the values in between.

There are many bad ways to do it such as:

while (not hexStr (i) = b) do
  inc (i)

This exampel does not cover all the possible values I might need.

So, I'm looking for a much faster and smarter way to do it, rather the
bad way above.


More information about the fpc-devel mailing list