Potrzebuję znaleźć sposób na przekonwertowanie dużej liczby na ciąg szesnastkowy w javascript. Prosto z bat, próbowałem myBigNumber.toString(16)
, ale jeśli myBigNumber
ma bardzo dużą wartość (np. 1298925419114529174706173), wtedy myBigNumber.toString(16)
zwróci wynik błędny, który jest po prostu genialny. Próbowałem pisać o własnej funkcji w następujący sposób:Konwertuj dużą liczbę całkowitą na ciąg szesnastkowy w JavaScript
function (integer) {
var result = '';
while (integer) {
result = (integer % 16).toString(16) + result;
integer = Math.floor(integer/16);
}
}
Jednak duża liczba modulo 16 wszystko return 0 (myślę, że to fundamentalna kwestia jest to, co jest przyczyną problemu z toString
Próbowałem też zastąpienie (integer % 16)
z (integer - 16 * Math.floor(integer/16))
ale miałem. ten sam problem.
mam również spojrzał w bibliotece Big Integer JavaScript, ale że jest to ogromny plugin dla jednego, mam nadzieję, że stosunkowo prosty problem.
jakieś przemyślenia, w jaki sposób mogę uzyskać poprawny wynik? może jakiś rodzaj podziale i podbicia podejścia? Jestem naprawdę raczej utknąłem tutaj.
jest to problem z dużymi liczbami, nie przekształcając się _String_ '1298925419114529174706173 == = 1298925419114529174706170' –
Twój numer jest dużo lepszy od javascript największej liczby całkowitej, zobacz http://stackoverflow.com/questions/307179/what-is-javascripts-max-int-whats-the-highest-integer-value-a-number -can-go-t – bfavaretto
cóż, to nie jest zabawne. Gdybym miał reprezentację liczby 10 jako liczby w łańcuchu, czy istnieje prosty sposób przekonwertowania tego ciągu na ciąg szesnastkowy? –