Метод toString
объекта Number
перекрывает стандартный метод Object#toString
.
Первый аргумент преобразуется в строку и используется как основание системы счисления.
var count = 10;
print(count.toString()); // "10"
print((17).toString()); // "17"
var x = 7;
print(x.toString(2)); // "111"
Я тоже пробовал, получилось!
тоесть x.toString(2) переводит x в 2чную систему?
В смысле того, что ты имеешь на выходе функции - да. Само-то число не меняется - ты просто получаешь его символьное представление в другой системе счисления.
Жаль, правда, что нет подобного встроенного способа чтобы преобразовать число в строку с фиксированным количеством знаков, то есть чтобы недостающие старшие разряды заполнялись нулями.
Хотя такую функцию написать несложно:
Или можно даже расширить базовый прототип:
В обоих случаях аргумент radix можно опустить, как и в случае с функцией toString().
Спасибо большое автору комментария, то, что я скал
Я человек обычный не понимаю как можно из 2 и 7 ки получить - не понимаю. Я их и умножала и складывала все равно не получается. Что это такое. Я тупая не понимаю шо такоэ систэма счислэния?
Система исчисления - то, в каком виде представлены числа.
Например в шестнадцатиричной системе исчисления значения от 0 до 9 совпадают с нашей любимой десятичной, но далее идут значения вроде A, B, C, D, E, F. - Это и есть "остаток". В шестнадцатиричной системе Шестнадцать знаков от 0 до 9 и от A до F. соответственно от 0 до 15. Тоесть числа у нас идут 8, 9, 10. В другой системе - 8, 9, А, ...и потом 10 и так до 1F потом 20 ... и.т.д. Может это и не ясно, тогда пусть объяснит другой.
Чяднт? Или во втором случае метод другого объекта вызывается?
var ii = 999999999999999999999999990;
while (ii < 999999999999999999999999999) {
Number.prototype.toStringEx = function(digits, radix) {
var left = "";
var right = this.toString(radix);
for (aa=right.length; aa')
document.write (ii)
document.write ('')
ii++;
}
не работает, судя по всему, не выдерживает размера.
Если кто знает, поясните.