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