2014-01-14 2 views
0

Я видел этот вопрос раньше, но я не понял ответа.Получение двоичного номера из кода

function (num, success) { 
    if (true && (num & Math.pow(2, 0)) != 0 && (num & Math.pow(2, 1)) != 0 && (num & Math.pow(2, 2)) == 0 && (num & Math.pow(2, 3)) != 0 && (num & Math.pow(2, 4)) != 0 && (num & Math.pow(2, 5)) == 0 && (num & Math.pow(2, 6)) == 0 && (num & Math.pow(2, 7)) != 0 && (num & Math.pow(2, 8)) == 0 && (num & Math.pow(2, 9)) != 0 && (num & Math.pow(2, 10)) != 0 && (num & Math.pow(2, 11)) == 0 && (num & Math.pow(2, 12)) == 0 && (num & Math.pow(2, 13)) != 0 && (num & Math.pow(2, 14)) == 0 && (num & Math.pow(2, 15)) == 0) 

Может ли кто-нибудь объяснить мне, как получить двоичное значение из этого кода?

Поэтому я могу перейти к 4-значному номеру.

+2

Я понятия не имею, что вы спрашивают. На какой «ранний вопрос» вы ссылаетесь? Какую «двоичную ценность» вы видите здесь? Это даже не правильный код! –

+0

Я видел это раньше. Это запутанный номерный тест. –

+0

@ ElliottFrisch: Уточните? Я заинтригован! –

ответ

1

Это всего лишь фрагмент кода, а не полная функция, поскольку вы ничего не возвращаете, и это всего лишь условное выражение в выражении if, однако дух вопроса заключается в том, как вы можете получить двоичное число из этого условна. Итак ...

Сначала вам нужно понять, что делает функция Math.pow. Math.pow(2,0) даст число 1, потому что это 2 до степени 0 или 2^0. Math.pow(2,1) 2, Math.pow(2,2) 4 и так далее.

Итак, как вы знаете двоичное число? Двоичный 101 - это номер 5, потому что это 1*(2^2) + 0*(2^1) + 1*(2^0). Поэтому рассмотрим условное:

num & Math.pow(2,0) будет либо одним, либо ноль. Поэтому вы сравниваете это с == и !=, чтобы узнать, и используйте оператор AND (&&), чтобы убедиться, что он сравнивает истинные/ложные результаты. В приведенном выше примере 101, вы должны были бы верно в результате следующих условных:

(num & Math.pow(2, 2)) != 0 ---> смысл 1

&&

(num & Math.pow(2, 1)) == 0 ---> 0 означает

&&

(num & Math.pow(2, 0)) != 0 ---> значение 1

+0

Большое спасибо. – user3194833

+0

Теперь я понимаю вопрос. – user3194833

+0

Np, я рад помочь. Спасибо за редактирование, он выглядит более понятным. –

Смежные вопросы