dubasua, это-то как раз просто и идёт из сишных корней языка:
Всего дано 32 бита, и есть 2 варианта, как их отобразить - со знаком или без него (побитово они идентичны): Если со знаком, т.е. возможны отрицательные значения, - то старший бит показывает, положительное число или отрицательное, а само значение ограничено оставшимися 31 битами. А если беззнаковое - то число может занять все 32 бита, но тогда отсчёт от 0 до 2^32.
Так вот int'ы в PHP - только со знаком. Поэтому набор бит интерпретируется не совсем так. Аналогичная история с filesize для файлов размером от 2 до 4гб.
|