<?php
$x=ip2long("192.168.50.1");
echo $x."\n";
echo sprintf("%X\n", $x);
echo sprintf("%X",$x).">>8=".sprintf("%X\n", $x>>8);
echo sprintf("%X",$x).">>16=".sprintf("%X\n", $x>>16);
echo sprintf("%X",$x).">>24=".sprintf("%X\n", $x>>24);
echo sprintf("%X",$x).">>32=".sprintf("%X\n", $x>>32);
echo sprintf("%X",$x)."<<8=".sprintf("%X\n", $x<<8);
echo sprintf("%X",$x)."<<16=".sprintf("%X\n", $x<<16);
echo sprintf("%X",$x)."<<24=".sprintf("%X\n", $x<<24);
echo sprintf("%X",$x)."<<32=".sprintf("%X\n", $x<<32);
?>
запускаю и получаю:
-1062718975
C0A83201
C0A83201>>8=FFC0A832
C0A83201>>16=FFFFC0A8
C0A83201>>24=FFFFFFC0
C0A83201>>32=C0A83201
C0A83201<<8=A8320100
C0A83201<<16=32010000
C0A83201<<24=1000000
C0A83201<<32=C0A83201
Откуда взялись "FF" при сдвиге вправо, и почему неправильно работает сдвиг влево??? Я понимаю что это связано с отсутствием беззнаковых типов, но объяснить почему именно так работает не могу..


Ответ на:
комментарий
от TaranSergey

Ответ на:
комментарий
от cobold

Ответ на:
комментарий
от cobold

Ответ на:
комментарий
от TaranSergey

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум битовый сдвиг (2012)
- Форум битовый сдвиг с переносом (rcl/rcr) (2006)
- Форум httpd+php+freetds+mssql бинарная дата (2007)
- Форум Почта от /usr/sbin/sendmail через Gmail (Google Apps) (2011)
- Форум Вопрос по левому битовому сдвигу и насыщению (saturation) (2012)
- Форум Деление целых на 2 через битовый сдвиг - архаизм? (2013)
- Форум Битовые коды (2017)
- Форум битовые поля (2019)
- Форум Битовые поля (2019)
- Форум Битовый мультипликатор (2015)