ParagonIE_Sodium_Core32_Int32::rotateRight()
Rotate to the right
{} Это метод класса: ParagonIE_Sodium_Core32_Int32{}
Хуков нет.
Возвращает
ParagonIE_Sodium_Core32_Int32
.
Использование
$ParagonIE_Sodium_Core32_Int32 = new ParagonIE_Sodium_Core32_Int32(); $ParagonIE_Sodium_Core32_Int32->rotateRight( $c );
- $c(int)
- -
Код ParagonIE_Sodium_Core32_Int32::rotateRight() ParagonIE Sodium Core32 Int32::rotateRight WP 6.0
public function rotateRight($c = 0) { ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1); /** @var int $c */ $c = (int) $c; $return = new ParagonIE_Sodium_Core32_Int32(); $return->unsignedInt = $this->unsignedInt; $c &= 31; /** @var int $c */ if ($c === 0) { // NOP, but we want a copy. $return->limbs = $this->limbs; } else { /** @var int $c */ /** @var int $idx_shift */ $idx_shift = ($c >> 4) & 1; /** @var int $sub_shift */ $sub_shift = $c & 15; /** @var array<int, int> $limbs */ $limbs =& $return->limbs; /** @var array<int, int> $myLimbs */ $myLimbs =& $this->limbs; for ($i = 1; $i >= 0; --$i) { /** @var int $j */ $j = ($i - $idx_shift) & 1; /** @var int $k */ $k = ($i - $idx_shift - 1) & 1; $limbs[$i] = (int) ( ( ((int) ($myLimbs[$j]) >> (int) ($sub_shift)) | ((int) ($myLimbs[$k]) << (16 - (int) ($sub_shift))) ) & 0xffff ); } } return $return; }