On 11/22/06, Dominique Leducq <[EMAIL PROTECTED]> 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
begin
 ...
 inc (i)
 ....
end;

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.


Ido
--
http://ik.homelinux.org/
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to