On Wed, 22 Nov 2006 16:56:04 +0200 ik <[EMAIL PROTECTED]> wrote: > On 11/22/06, Vincent Snijders <[EMAIL PROTECTED]> wrote: > > ik schreef: > > > 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 numerical difference is the same. The difference seems larger if you are > > speaking about the string represetations of these 32 bits numbers > > ('3616538624','3616669696') and ('D7900000',' ') > > But I need the range of 4 numbers and not the range of handrands of thousands.
There are far more than 4 numbers between D7900000 and D7920000, and as much as between 3616538624 and 3616669696. Or what are you calling numbers ? Digits ? I suggest you give us a sample of what values your loop counter may take, and in what order. > > > > > > > > > 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. > > > > Why not? > > It seems to be good only for "basic" ranges... I'm creating a function > that you can give a start range and end range, and it return all of > the chars on that range. so I do not know if I'll place the first 97 > letter up to the FFFF letter, that this loop will work well, or fast > enough. > > > > > > > > > So, I'm looking for a much faster and smarter way to do it, rather the > > > bad way above. > > > > Do you want to operate on strings or on numbers or on somthing else? > > I prefer numeric handing then string handling. > > > > > Vincent > > Ido > -- > http://ik.homelinux.org/ _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel