Метод 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чную систему?
В смысле того, что ты имеешь на выходе функции - да. Само-то число не меняется - ты просто получаешь его символьное представление в другой системе счисления.
Жаль, правда, что нет подобного встроенного способа чтобы преобразовать число в строку с фиксированным количеством знаков, то есть чтобы недостающие старшие разряды заполнялись нулями.
Хотя такую функцию написать несложно:
function FixedDigits(number, digits, radix) { var left = ""; var right = number.toString(radix); for (i=right.length; i<digits; i++) left += "0"; return left + right; } FixedDigits(65535,8,16); // вернет "0000ffff" FixedDigits(65535,8); // вернет "00065535"Или можно даже расширить базовый прототип:
Number.prototype.toStringEx = function(digits, radix) { var left = ""; var right = this.toString(radix); for (i=right.length; i<digits; i++) left += "0"; return left + right; } var n = 555; n.toStringEx(4,16); // вернет "022b" n.toStringEx(4); // вернет "0555"В обоих случаях аргумент 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 ... и.т.д. Может это и не ясно, тогда пусть объяснит другой.
Number.prototype.toString = function () {return this.toFixed (3)} i = 23.123352; i.toString () // "23.123" i = 23.123352; i + '' // "23.123352"Чяднт? Или во втором случае метод другого объекта вызывается?
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++;
}
не работает, судя по всему, не выдерживает размера.
Если кто знает, поясните.