converting very big numbers from hex to dec
 CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com

# Thread: converting very big numbers from hex to dec

1. Member
Join Date
May 2004
Location
Israel
Posts
174

## converting very big numbers from hex to dec

am tring to conver the left number in the atached image to the on on the right but i recive overflow

how can i slove this problem?
peleg

2. Member +
Join Date
Nov 2005
Location
Posts
696

## Re: converting very big numbers from hex to dec

Unfortunately, that large of a number is too much for even a Long.

Singles and Doubles can hold it, but because they use significant digits, the value of the number gets changed.

With Single:
Entered 144614369260322395
Returned 144614366354866176

With Double:
Entered 144614369260322395
Returned 144614369260322400

My best suggestion would be to convert the hex into a String, and whenever you make comparisons, if you make any, just make sure the value it's being compared against gets put into CStr().
Strings can perform direct comparisons with number strings perfectly as far as I can see, so "500" < "600" will return True, "455" <= "300" will return False, "400" <> "400" will return False, etc.
Last edited by ChaosTheEternal; December 14th, 2005 at 07:51 AM.

3. Member
Join Date
May 2004
Location
Israel
Posts
174

## Re: converting very big numbers from hex to dec

i didnt execlly understamdnd you
i ned oo convert 1 of them to the other format before i can compre!

how will i do it?

4. Member +
Join Date
Nov 2005
Location
Posts
696

## Re: converting very big numbers from hex to dec

Make the comparisons as strings.

Meaning, make both values being compared into Strings when you compare them, using the CStr() function if necessary.

5. ## Re: converting very big numbers from hex to dec

Hi !
I'm working on that. Hope to present you a solution soon. 100 decimal digits are enough ?

Jonny Poet

6. ## Re: converting very big numbers from hex to dec

Here are some converterfunctions I have done for u, working up to 100 decimal digits
Please test them. Hope that helps

Jonny Poet

7. ## Re: converting very big numbers from hex to dec

Originally Posted by ChaosTheEternal
...
My best suggestion would be to convert the hex into a String, and whenever you make comparisons, if you make any, just make sure the value it's being compared against gets put into CStr()....
Yea, but I think he has to compare long decimals against hex values !! so he has to convert one of them before he can compare.
So I did some converters.

Jonny Poet

8. Member
Join Date
Nov 2005
Posts
75

## Re: converting very big numbers from hex to dec

Originally Posted by JonnyPoet
Yea, but I think he has to compare long decimals against hex values !! so he has to convert one of them before he can compare.
So I did some converters.

Jonny Poet
Hey Jonny you are great... Thanks for help.

P.S : I love this site.... I think the best coding site on the planet
Last edited by jdavide; December 15th, 2005 at 12:13 AM.

9. Member
Join Date
May 2004
Location
Israel
Posts
174

## Re: converting very big numbers from hex to dec

hey Joney it worked!
i need only 15 number length
thnaks alot great day and great weekd end
peleg

10. Member
Join Date
May 2004
Location
Israel
Posts
174

## Re: converting very big numbers from hex to dec

maybe u have the opposite:
from dec to hex?

11. Member +
Join Date
Nov 2005
Location
Posts
696

## Re: converting very big numbers from hex to dec

VB already has that built in:

Hex(Number)

It returns the number as a hexadecimal String.

... unfortunately, Hex can't handle values larger than Longs.
You would have to do some manual conversion.
Last edited by ChaosTheEternal; December 15th, 2005 at 08:56 AM. Reason: Should have checked beforehand...

12. ## Re: converting very big numbers from hex to dec

Originally Posted by ChaosTheEternal
VB already has that built in:

Hex(Number)

It returns the number as a hexadecimal String.
Yes I tried that, but putting in, the given number 144614369260322395 is changed to an format with exponent ( I dont know english expression ) 1446...E+17 something like that so its not really usable I think.
I'll do that from a string-number like "1446..." into a hex string in the evening ( Its just now 3 PM in Vienna) so in some hours it should be done

Jonny Poet

13. ## Re: converting very big numbers from hex to dec

Originally Posted by ChaosTheEternal
Strings can perform direct comparisons with number strings perfectly as far as I can see, so "500" < "600" will return True, "455" <= "300" will return False, "400" <> "400" will return False, etc.
Just one note here ... the above examples work because they the same length.. if you try "9" < "10" you get false.. because in text digit 1 is compared to Digit 1 then digit 2, 3.....

Gremmy

14. ## Re: converting very big numbers from hex to dec

Originally Posted by GremlinSA
Just one note here ... the above examples work because they the same length.. if you try "9" < "10" you get false.. because in text digit 1 is compared to Digit 1 then digit 2, 3.....

Gremmy
Yes Gremmy you talked out of my soul. Yesterday I want to mention that, then I forgot. Today it was on my list to do that. You did

BTW I just started to program the Long-Decimal-string to Binary and to Hex functions. Will be ready soon I hope.
Last edited by JonnyPoet; December 15th, 2005 at 12:54 PM.

15. Member +
Join Date
Nov 2005
Location
Posts
696

## Re: converting very big numbers from hex to dec

For comparing strings, you could opt to check the lengths of them first, then the strings.
Code:
```If Len(strOne) = Len(strTwo) Then
If strOne > strTwo Then MsgBox "strOne is larger"
If strOne < strTwo Then MsgBox "strTwo is larger"
If strOne = strTwo Then MsgBox "strOne = strTwo"
Else
If Len(strOne) > Len(strTwo) Then MsgBox "strOne is larger"
If Len(strOne) < Len(strTwo) Then MsgBox "strTwo is larger"
End If```

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•