2015-06-29 7 views

ответ

12

parseInt(number, base) возвращает десятичное значения числа, представленное number параметра в base базы.

И 11 равно 3 в двоичной системе счисления.

+3

т. Е. 11 в двоичном выражении равно 3 в десятичной системе.;-) – RobG

+1

Сначала, когда я прочитал документацию, первая строка гласит: «Функция анализирует строковый аргумент и возвращает целое число« не »возвращает десятичную величину.« Он только утверждает, что далее в документации по описанию. Но спасибо. –

32

Использование toString() вместо parseInt:

11..toString(2) 
var str = "11"; 
var bin = (+str).toString(2); 
console.log(bin) 

Согласно документации в JavaScript:

Следующие примеры возвращают NaN:

parseInt("546", 2); // Цифра не действительна для двоичных представлений

+1

Классного решение моей проблемы. 'new Number (str) .toString (2)' делает то же самое, будет более явным, хотя. В качестве объяснения: метод toString 'Number', который принимает значение radix и выводит число в другом представлении: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString - оператор '+' передает строку в число. – Husterknupp

2

Функция parseInt() анализирует строковый аргумент и возвращает целое число указанного основани (основание в математических системах счисления).

Таким образом, вы сообщаете системе, в которой вы хотите преобразовать 11 как двоичный код в десятичный.

В частности, на сайт, на который вы ссылаетесь, если вы посмотрите ближе, на самом деле он использует JS для передачи HTTP GET для его преобразования на стороне веб-сервера. Нечто подобное следующему:

http://www.binaryhexconverter.com/hesapla.php?fonksiyon=dec2bin&deger=11&pad=false

+0

11 как двоичный код по-прежнему является целым числом. –

+0

извините, что я имею в виду десятичное значение, изменено –

6

Как указано в documentation for parseInt: ParseInt() функция анализирует строковый аргумент и возвращает целого число от указанного поразрядной (основание в математической системе счисления).

Таким образом, он делает именно то, что он должен делать: преобразование двоичного значения 11 в целое значение 3.

Если вы пытаетесь преобразовать целое значение 11 в двоичное значение, чем вам нужно использовать метод Number.toString:

console.log(11..toString(2)); // 1011 
+0

Да, я понимаю, что оно возвращает целое число. Hexas также могут быть целыми числами, а также двоичными числами и восьмеричными числами, целое число - целое число. То, что должно быть указано в верхней части документации, - это то, что можно найти в разделе описания: «возвращаемое значение будет десятичным целочисленным представлением первого аргумента, принятого как число в указанном базовом значении (base)». –

+0

@RobertRocha , это неверно. Целое число - это только подмножество десятичных значений, которое может быть представлено в двоичном, восьмеричном, шестнадцатеричном и т. Д. –

+0

Вы правы Я просто искал его: http://dictionary.reference.com/browse/integer?s=t –