PHP и побитовый сдвиг

PHP, как известно, язык не имеющий строгой типизации переменных, как, например, С или С++. Объявляете переменную, пихаете в нее данные, а интерпретатор сам решает, в каком виде их хранить. Однако так же присутствует и механизм, позволяющий специально преобразовать переменную из одного типа в другой – так называемое приведение типов.

Что касается целых чисел, интерпретатор может определить, что результат операции не поместится в переменную и конвертирует ее в другой тип. В PHP нет поддержки беззнаковых чисел (uint, unsigned integer) и результат операции может быть автоматически помещен в float (double).

Но во время операции побитового сдвига (bitwise shift) влево (<<) мы легко можем выйти за границы integer и неожиданно получить отрицательное число. Приведу пример кода:

Читать остальную часть заметки »

Теги: , , , ,

Buugle Chrome

Я использую бета-версию Google Chrome и иногда этот нехороший человек браузер не хочет обновляться, в About появляется кнопка перезапуска браузера, но обновление не происходит.

Решение нашел методом тыка :-D. Для обновления нужно зайти в каталог

X:\Documents and Settings\USERNAME\Local Settings\Application Data\Google\Chrome\Application

Там будет несколько каталогов с разными версиями, файлы chrome.exe и new_chrome.exe.

Закройте браузер, удалите все каталоги со старыми версиями и файл chrome.exe, а файл new_chrome.exe переименуйте в chrome.exe.

Все, запускайте.

P.S.

Быстро найти оригинальное расположение файла/программы по ярлыку вам поможет хак из этой статьи.


Теги: , , , , , , , , , , ,