Ik wil een groot getal van decimaal naar hexadecimaal converteren in VBScript (/ASP). Hiervoor is de standaard hex functie niet toereikend (overflow). Ik ben dus op zoek naar een stukje maatwerk dec2hex.
Ik heb zelf dit scriptje gevonden:
Deze functie wil ik nu in VBScript (/ASP) hebben. Dit is mijn conversie:
Dit gaat best vaak goed, maar ik krijg bij 'r' een overflow wanneer ik voor het getal i 2154132085 invul. Dit blijkt te liggen aan de 'AND'-operatie met 0x0F. Ja, tis een joekel van een getal, maar die heb ik nodig bij m'n MD5 berekening... Wie weet 't beter....?
Ik heb zelf dit scriptje gevonden:
JavaScript:
1
2
3
4
5
6
7
8
9
10
| function dec2hex(i) { var sHex = "0123456789ABCDEF"; var h = ""; for(j = 0; j <= 3; j++) { h += sHex.charAt((i >> (j * 8 + 4)) & 0x0F) + sHex.charAt((i >> (j * 8)) & 0x0F); } return h; } |
Deze functie wil ik nu in VBScript (/ASP) hebben. Dit is mijn conversie:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
| function dec2hex(i) { dim sHex : sHex = "0123456789ABCDEF" dim h,j for j=0 to 3 l = mid(sHex,(i / 2^(j * 8 + 4)) & 0x0F,1) r = mid(sHex,(i / 2^(j * 8)) & 0x0F,1) h = h & l & r next 'i dec2hex = h } |
Dit gaat best vaak goed, maar ik krijg bij 'r' een overflow wanneer ik voor het getal i 2154132085 invul. Dit blijkt te liggen aan de 'AND'-operatie met 0x0F. Ja, tis een joekel van een getal, maar die heb ik nodig bij m'n MD5 berekening... Wie weet 't beter....?
[ Voor 0% gewijzigd door Verwijderd op 16-09-2002 14:43 . Reden: Verheldering ]