code: private static function shiftStringToRight($input)
      {
          $width = 4;
          $parts = array_map('self::toUInt32Bits', str_split($input, $width));
          $runs = count($parts);
  
          for ($i = $runs - 1; $i >= 0; $i--) {
              if ($i) {
                  $lsb1 = $parts[$i - 1] & 0x00000001;
                  if ($lsb1) {
                      $parts[$i] = ($parts[$i] >> 1) | 0x80000000;
                      $parts[$i] = pack('N', $parts[$i]);
                      continue;
                  }
              }
              $parts[$i] = ($parts[$i] >> 1) & 0x7FFFFFFF;
              $parts[$i] = pack('N', $parts[$i]);
          }
          $res = implode('', $parts);
  
          return $res;
      }
docs: @param string $input
  
  @return string