Битовые сдвиги в python
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.
Вопрос в том, что в питоне битовые (bit-shift >> and <<) сдвиги «иные», т.е. с учетом знака:) А есть ли способ получить обычные битовые сдвиги. как в С или том же ПХП.Т. е. чтобы биты просто сдвигались в лево (к примеру), без учета знакового/не знакового бита, а «лишние» биты не расширяли число до long, а просто отбрасывались.
Приведу пример кода на ПХП:
$Check1 = StrToNum ($String, 0×1505, 0×21);
$Check2 = StrToNum ($String, 0, 0×1003F);
$Check1 >> = 2;
$Check1 = (($Check1 >> 4) & 0×3FFFFC0) | ($Check1 & 0×3F);
$Check1 = (($Check1 >> 4) & 0×3FFC00) | ($Check1 & 0×3FF);
$Check1 = (($Check1 >> 4) & 0×3C000) | ($Check1 & 0×3FFF);
$T1 = (((($Check1 & 0×3C0) << 4) | ($Check1 & 0×3C)) << 2) | ($Check2 & 0xF0F);
$T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0×3C00)) << 0xA) | ($Check2 & 0xF0F0000);
return ($T1| $T2);
Простое преобразование его к питоньему синтаксису дает иной результат...
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів