Пример получения параметра «tz»
Вы можете получить параметр tz с помощью побитовых операций, таких как математическое И (&) и математическое ИЛИ (|).
Пример получения «tz»
Ниже приведена инструкция для получения параметра tz для часового пояса Азорских островов (-01:00) без перехода на летнее время (DST) (0x08000000).
-
Примените математическую операцию И к часовому поясу Азорских островов (-3600), используя маску 0xf000ffff.
- Преобразуйте десятичное значение со знаком в двоичное, используя метод дополнительного кода.
- Выполните операцию:
-3600 & 0xf000ffff -268373520
-
Примените математическую операцию ИЛИ к результату, используя маску, соответствующую DST (0x08000000).
-268373520 | 0x8000000 -134155792
Таким образом, итоговое значение для tz равно -134155792.
Обратная операция
Чтобы получить исходное значение часового пояса (tz) из tz = -134155792, выполните следующие действия:
-
Примените математическую операцию И к параметру tz, используя маску 0xffff:
-134155792 & 0xffff 61936
-
Если исходное значение tz отрицательное (как в данном случае), примените математическую операцию ИЛИ к результату, используя маску 0xffff0000.
61936 | 0xffff0000 -3600
Это подтверждает, что исходное значение часового пояса равно -3600 (UTC -01:00, Азорские острова).
Дополнительная информация
- Значение tz -134155792 в шестнадцатеричном виде равно 0xf800f1f0.
- Применение маски 0x0fff0000 выделяет компонент перехода на летнее время.
- Значение DST 0x08000000 указывает на отсутствие перехода на летнее время.
Таким образом, декодированный часовой пояс - UTC -01:00 (Азорские острова) без перехода на летнее время.