Kolyaj я думал знак умножение поставил, а 20 вроде стер, т.к. из другого примера (поторопился, забыл parseInt) :D
upd: поправил |
Ок, спасибо за ответы (:
P.S. Цитата:
var a = '10', b = '10'; alert(+a+(+b)); |
Цитата:
alert(parseInt('1число')+parseInt('2число')); Цитата:
var a = '10', b = '10'; alert(+a+~~b); |
Цитата:
Это мы не проходили, это нам не задавали... |
Kepa в книжке, о которой идет речь, есть раздел "Побитовые операторы"
|
Я пока на 78-ой странице из 950, потихонечку доберемся и до них. (:
|
Цитата:
и непонятно, какое отношение имеют твои примеры к передаче параметров в функции... Цитата:
|
Цитата:
Цитата:
|
в первую очередь, я имел в виду, что про 8 байт - это не причина:
Цитата:
в-третьих, не важно, как она это делает в-четвертых, отдельная история уже не актуальна |
Пока вы спорите у меня возник новый вопрос :)
Прочитал про поразрядное НЕ (~) и у меня возникло недопонимание - как именно представляются отрицательные целые числа (http://javascript.ru/bitwise-operators - эту статью я тоже читал, но все равно до конца так и не понял), поясню: Число у нас представляется 32 разрядами, при этом старший (левый) разряд - знаковый, т.е. у нас диапазон чисел, если я правильно понял, от (2^31 - 1) до -(2^31). Далее, как представляются целые положительные числа в двоичной системе мне понятно, 1=1; 2=10; 3=11; 4=100; и т.д., при этом все разряды левее старшей единицы равны 0, а вот как представляются отрицательные мне уже непонятно, ну за тем исключением что старший бит равен 1. Возьмем пример из статьи: 314 = 00000000000000000000000100111010 -314 = 11111111111111111111111011000110 Так вот, что мне здесь непонятно - по какому алгоритму во втором случае мы "получаем" из этой последовательности -314, например мне было бы понятен такой вариант: -314 = 10000000000000000000000100111010 Но насколько я понимаю он понятен человеку, но очень неудобен для "компьютера" в вычислениях (а может и вообще непригоден), в таком случае мне был бы еще понятен вариант такой: -314 = 11111111111111111111111011000101 Т.е. это ~314, без "дополнения до двойки" - здесь я бы понимал что мы "получаем" -314 как разность максимального числа (все разряды равны 1) и 314, а старший бит указывает что число отрицательное, но в статье говорится что надо еще прибавить единицу, и вот тут я не понимаю, откуда берется эта единица и почему полученный после "дополнения до двойки" результат будет -314. В целом я подозреваю что тут что-то завязано с арифметикой целых чисел (например, если знаковый бит считать за обычный, то (0-1) будет равно максимальному числу, скажем для 8-ми разрядного без знакового представления 0-1 = 255. Будет здорово если кто-нибудь разжует данный момент (: P.S. Пока писал еще пришла мысль что это может быть связано с тем что у нас нет "отрицательного" нуля и поэтому у нас отрицательных чисел на одно больше чем положительных, может дело в этом? В любом случае хочется точно знать. :) |
Часовой пояс GMT +3, время: 05:30. |