• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP gmp_and函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中gmp_and函数的典型用法代码示例。如果您正苦于以下问题:PHP gmp_and函数的具体用法?PHP gmp_and怎么用?PHP gmp_and使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了gmp_and函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: comparebit

 function comparebit($key, $value)
 {
     if (isset($this->_bitmap[$key1])) {
         if (gmp_and($this->_bitmap[$key1], $value)) {
             return true;
         }
     }
     return false;
 }
开发者ID:jorgenils,项目名称:zend-framework,代码行数:9,代码来源:GMP.php


示例2: encodeSFixed64

 /**
  * {@inheritdoc}
  */
 public function encodeSFixed64($sFixed64)
 {
     $value = $this->is32Bit ? gmp_and($sFixed64, '0x0ffffffffffffffff') : gmp_init(sprintf('%u', $sFixed64));
     $bytes = '';
     for ($i = 0; $i < 8; ++$i) {
         $bytes .= chr(gmp_intval(gmp_and($value, $this->gmp_xff)));
         $value = gmp_div_q($value, $this->gmp_x100);
     }
     return $bytes;
 }
开发者ID:protobuf-php,项目名称:protobuf,代码行数:13,代码来源:GmpNegativeEncoder.php


示例3: testPutTAGLong

 /**
  * @dataProvider providerTestTAGLong
  */
 public function testPutTAGLong($value)
 {
     $fPtr = fopen($this->vFile->url(), 'wb');
     // 32-bit longs seem to be too long for pack() on 32-bit machines. Split into 4x16-bit instead.
     $quarters[0] = gmp_div(gmp_and($value, '0xFFFF000000000000'), gmp_pow(2, 48));
     $quarters[1] = gmp_div(gmp_and($value, '0x0000FFFF00000000'), gmp_pow(2, 32));
     $quarters[2] = gmp_div(gmp_and($value, '0x00000000FFFF0000'), gmp_pow(2, 16));
     $quarters[3] = gmp_and($value, '0xFFFF');
     $binary = pack('nnnn', gmp_intval($quarters[0]), gmp_intval($quarters[1]), gmp_intval($quarters[2]), gmp_intval($quarters[3]));
     $this->dataHandler->putTAGLong($fPtr, $value);
     $this->assertSame($binary, $this->vFile->getContent());
 }
开发者ID:rickselby,项目名称:nbt,代码行数:15,代码来源:DataHandlerLong32Test.php


示例4: getMask

 /**
  * Return netmask
  *
  * @return IPv6
  */
 public function getMask()
 {
     if ($this->mask === null) {
         if ($this->prefix == 0) {
             $this->mask = new $this->ip_class(0);
         } else {
             $max_int = gmp_init(constant("{$this->ip_class}::MAX_INT"));
             $mask = gmp_shiftl($max_int, constant("{$this->ip_class}::NB_BITS") - $this->prefix);
             $mask = gmp_and($mask, $max_int);
             // truncate to 128 bits only
             $this->mask = new $this->ip_class($mask);
         }
     }
     return $this->mask;
 }
开发者ID:aniblaze,项目名称:php-ip,代码行数:20,代码来源:IPBlock.php


示例5: decode

 /**
  * @param string $octets
  *
  * @throws InvalidArgumentException if the given octets represent a malformed base-128 value or the decoded value would exceed the the maximum integer length
  *
  * @return int
  */
 public static function decode($octets)
 {
     $bitsPerOctet = 7;
     $value = gmp_init(0, 10);
     $i = 0;
     $leftShift = function ($number, $positions) {
         return gmp_mul($number, gmp_pow(2, $positions));
     };
     while (true) {
         if (!isset($octets[$i])) {
             throw new InvalidArgumentException(sprintf('Malformed base-128 encoded value (0x%s).', strtoupper(bin2hex($octets)) ?: '0'));
         }
         $octet = gmp_init(ord($octets[$i++]), 10);
         $l1 = $leftShift($value, $bitsPerOctet);
         $r1 = gmp_and($octet, 0x7f);
         $value = gmp_add($l1, $r1);
         if (0 === gmp_cmp(gmp_and($octet, 0x80), 0)) {
             break;
         }
     }
     return gmp_strval($value);
 }
开发者ID:afk11,项目名称:phpasn1,代码行数:29,代码来源:Base128.php


示例6: wang_hash64

/**
 * Calculate Wang hash for 64bit unsigned integer using GMP library
 * PHP only supports signed integers even with 64bit version
 *
 * See <code/nel/include/nel/misc/wang_hash.h> on https://bitbucket.org/ryzom/ryzomcore
 *
 * @param string $key
 *
 * @return string hash
 */
function wang_hash64($key)
{
    // force $key to be base 10
    $key = gmp_init($key, 10);
    //$key = (~$key) + ($key << 21);
    $key = gmp_add(gmp_com($key), gmp_mul($key, 1 << 21));
    //$key = $key ^ ($key >> 24);
    $key = gmp_xor($key, gmp_div($key, 1 << 24));
    //$key = $key * 265;
    $key = gmp_mul($key, 265);
    //$key = $key ^ ($key >> 14);
    $key = gmp_xor($key, gmp_div($key, 1 << 14));
    //$key = $key * 21;
    $key = gmp_mul($key, 21);
    //$key = $key ^ ($key >> 28);
    $key = gmp_xor($key, gmp_div($key, 1 << 28));
    //$key = $key + ($key << 31);
    $key = gmp_add($key, gmp_mul($key, gmp_pow(2, 31)));
    // limit to 64bit
    $key = gmp_and($key, "0xFFFFFFFFFFFFFFFF");
    return gmp_strval($key, 10);
}
开发者ID:nimetu,项目名称:ryzom_weather,代码行数:32,代码来源:wang_hash.php


示例7: bit_and

 /**
  * Bitwise AND
  *
  * @param $value mixed anything that can be converted into an IP object
  * @return IP
  */
 public function bit_and($value)
 {
     if (!$value instanceof self) {
         $value = new $this->class($value);
     }
     return new $this->class(gmp_and($this->ip, $value->ip));
 }
开发者ID:aniblaze,项目名称:php-ip,代码行数:13,代码来源:IP.php


示例8: decrypt

 private function decrypt($encrypted_password)
 {
     $encrypted_password = trim($encrypted_password);
     if (!strlen($encrypted_password)) {
         return '';
     }
     $decoded_password = hextostr($encrypted_password);
     $decrypted_password = '';
     $seed = 0x2a9a;
     for ($i = 0; $i < strlen($decoded_password); $i++) {
         $decrypted_password .= chr(ord($decoded_password[$i]) ^ $seed >> 8 & 0xff);
         $seed += ord($decoded_password[$i]);
         $seed = hexdec(gmp_strval(gmp_and(gmp_add(gmp_mul("{$seed}", "0x8141"), "0x3171"), "0xffff"), 16));
     }
     return $decrypted_password;
 }
开发者ID:sh1nu11bi,项目名称:PonyBotnet_panel,代码行数:16,代码来源:password_modules.php


示例9: decode_long_from_array

 /**
  * @param int[] $bytes array of ascii codes of bytes to decode
  * @return string represenation of decoded long.
  */
 static function decode_long_from_array($bytes)
 {
     $b = array_shift($bytes);
     $g = gmp_init($b & 0x7f);
     $shift = 7;
     while (0 != ($b & 0x80)) {
         $b = array_shift($bytes);
         $g = gmp_or($g, self::shift_left($b & 0x7f, $shift));
         $shift += 7;
     }
     $val = gmp_xor(self::shift_right($g, 1), gmp_neg(gmp_and($g, 1)));
     return gmp_strval($val);
 }
开发者ID:wikimedia,项目名称:avro,代码行数:17,代码来源:gmp.php


示例10: mul

 public static function mul($x2, Point $p1)
 {
     $e = $x2;
     if (self::cmp($p1, self::INFINITY) == 0) {
         return self::INFINITY;
     }
     if ($p1->order != null) {
         $e = gmp_mod($e, $p1->order);
     }
     if (gmp_cmp($e, 0) == 0) {
         return self::INFINITY;
     }
     if (gmp_cmp($e, 0) > 0) {
         $e3 = gmp_mul(3, $e);
         $negative_self = new Point($p1->curve, $p1->x, gmp_neg($p1->y), $p1->order);
         $i = gmp_div(self::leftmost_bit($e3), 2);
         $result = $p1;
         while (gmp_cmp($i, 1) > 0) {
             $result = self::double($result);
             if (gmp_cmp(gmp_and($e3, $i), 0) != 0 && gmp_cmp(gmp_and($e, $i), 0) == 0) {
                 $result = self::add($result, $p1);
             }
             if (gmp_cmp(gmp_and($e3, $i), 0) == 0 && gmp_cmp(gmp_and($e, $i), 0) != 0) {
                 $result = self::add($result, $negative_self);
             }
             $i = gmp_div($i, 2);
         }
         return $result;
     }
 }
开发者ID:gutorevoredo,项目名称:pilon,代码行数:30,代码来源:addrgen.php


示例11: sFixed64_gmp

 public function sFixed64_gmp($value)
 {
     static $xff, $x100;
     if (NULL === $xff) {
         $xff = gmp_init(0xff);
         $x100 = gmp_init(0x100);
     }
     $value = PHP_INT_SIZE < 8 ? gmp_and($value, '0x0ffffffffffffffff') : gmp_init(sprintf('%u', $value));
     $bytes = '';
     for ($i = 0; $i < 8; $i++) {
         $bytes .= chr(gmp_intval(gmp_and($value, $xff)));
         $value = gmp_div_q($value, $x100);
     }
     $this->write($bytes);
 }
开发者ID:SandeepUmredkar,项目名称:PortalSMIP,代码行数:15,代码来源:NativeWriter.php


示例12: _normalize

 /**
  * Normalize
  *
  * Deletes leading zeros and truncates (if necessary) to maintain the appropriate precision
  *
  * @return Math_BigInteger
  * @access private
  */
 function _normalize($result)
 {
     $result->precision = $this->precision;
     $result->bitmask = $this->bitmask;
     switch (MATH_BIGINTEGER_MODE) {
         case MATH_BIGINTEGER_MODE_GMP:
             if (!empty($result->bitmask->value)) {
                 $result->value = gmp_and($result->value, $result->bitmask->value);
             }
             return $result;
         case MATH_BIGINTEGER_MODE_BCMATH:
             if (!empty($result->bitmask->value)) {
                 $result->value = bcmod($result->value, $result->bitmask->value);
             }
             return $result;
     }
     if (!count($result->value)) {
         return $result;
     }
     for ($i = count($result->value) - 1; $i >= 0; $i--) {
         if ($result->value[$i]) {
             break;
         }
         unset($result->value[$i]);
     }
     if (!empty($result->bitmask->value)) {
         $length = min(count($result->value), count($this->bitmask->value));
         $result->value = array_slice($result->value, 0, $length);
         for ($i = 0; $i < $length; $i++) {
             $result->value[$i] = $result->value[$i] & $this->bitmask->value[$i];
         }
     }
     return $result;
 }
开发者ID:helenadeus,项目名称:s3db.map,代码行数:42,代码来源:BigInteger.php


示例13: myrand

function myrand($max, &$seed)
{
    $seed = hexdec(gmp_strval(gmp_and(gmp_add(gmp_mul("{$seed}", "0x8088405"), "1"), "0xffffffff"), 16));
    $v = hexdec(gmp_strval(gmp_and(gmp_shiftr(gmp_mul("0x" . dechex($seed), "{$max}"), "32"), "0xffffffff"), 16));
    return $v;
}
开发者ID:captincook,项目名称:Pony,代码行数:6,代码来源:misc.php


示例14: sign

 public function sign($message)
 {
     $curve = \fpoirotte\Pssht\ED25519::getInstance();
     $h = hash('sha512', $this->sk, true);
     $a = gmp_add(gmp_pow(2, 256 - 2), gmp_and(gmp_init(bin2hex(strrev($h)), 16), gmp_sub(gmp_pow(2, 254), 8)));
     $r = static::Hint(substr($h, 32) . $message);
     $R = $curve->scalarmult($curve->B, $r);
     $t = static::encodepoint($R) . $this->pk . $message;
     $S = gmp_mod(gmp_add($r, gmp_mul(static::Hint($t), $a)), $curve->l);
     return static::encodepoint($R) . static::encodeint($S);
 }
开发者ID:fpoirotte,项目名称:pssht,代码行数:11,代码来源:ED25519.php


示例15: Set

 /**
  * @param int $BitOffset
  * @param int $ValueMask
  * @param int $Value
  * 
  * @return void
  */
 private function Set($BitOffset, $ValueMask, $Value)
 {
     $this->Data = gmp_or(gmp_and($this->Data, gmp_com(self::ShiftLeft($ValueMask, $BitOffset))), self::ShiftLeft(gmp_and($Value, $ValueMask), $BitOffset));
 }
开发者ID:jenky,项目名称:SteamID.php,代码行数:11,代码来源:SteamID.php


示例16: ipv6NetworkFromAddr

 public static function ipv6NetworkFromAddr($addr, $prefix)
 {
     $size = 128 - $prefix;
     $addr = gmp_init('0x' . str_replace(':', '', $addr));
     $mask = gmp_init('0x' . str_replace(':', '', Ip::ipv6PrefixToMask($prefix)));
     $prefix = gmp_and($addr, $mask);
     return gmp_strval($prefix, 16);
 }
开发者ID:wAmpIre,项目名称:netmon,代码行数:8,代码来源:Ip.class.php


示例17: cidrToLongRange

 /** 
  * @param string $ip
  * @param int $mask
  */
 public function cidrToLongRange($ip, $mask)
 {
     // complementary mask
     $cmask = 32 - $mask;
     // binary complementary mask transformed to long int
     $ones = gmp_strval(gmp_sub(gmp_strval(gmp_pow("2", $cmask)), "1"));
     // long int mask
     $mask = gmp_strval(gmp_mul(gmp_strval(gmp_pow("2", $cmask)), gmp_strval(gmp_sub(gmp_strval(gmp_pow("2", $mask)), "1"))));
     // string subnet
     $this->longLeftRange = gmp_strval(gmp_and(sprintf("%u", ip2long($ip)), $mask), 10);
     // string broadcast ip
     $this->longRightRange = gmp_strval(gmp_add($this->longLeftRange, $ones));
 }
开发者ID:ivan-ionut29,项目名称:CheckRange,代码行数:17,代码来源:Range.php


示例18: convertToCommunityID

 /**
  * ConvertToCommunityID
  * - Converts a 17-digit Community ID (e.g. 76561197960435530) into a SteamID (e.g. STEAM_0:1:3144145)
  * @return SteamID as a string
  */
 function convertToCommunityID()
 {
     if (!empty($this->steamID64)) {
         $Y = $this->steamID64 % 2;
         //Parity bit at end of 64-bit ID
         $Z = gmp_and($this->steamID64, "0xFFFFFFFF");
         //Get the Account ID
         $Z = gmp_strval(gmp_div($Z, 2));
         return "STEAM_0:{$Y}:{$Z}";
     }
 }
开发者ID:gamenew09,项目名称:SteamAPI,代码行数:16,代码来源:SteamUser.php


示例19: is_power_of_2

 /**
  * Is number a power of 2 (e.g. an exponential value of 2)?
  *
  * @param string|resource $number Numeric string; or GMP resource.
  *
  * @return boolean TRUE if `$number` is a power of 2.
  *
  * @throws exception If invalid types are passed through arguments list.
  */
 public function is_power_of_2($number)
 {
     $this->check_arg_types(array('numeric', 'resource'), func_get_args());
     $number = $this->resource($number);
     // Resource.
     return !gmp_cmp(gmp_and($number, gmp_sub($number, $this->_1)), $this->_0);
 }
开发者ID:panvagenas,项目名称:x-related-posts,代码行数:16,代码来源:gmp.php


示例20: BitwiseAND

 public static function BitwiseAND($Number1, $Number2)
 {
     return gmp_and($Number1, $Number2);
 }
开发者ID:davispuh,项目名称:php-utils,代码行数:4,代码来源:Utilities.php



注:本文中的gmp_and函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP gmp_cmp函数代码示例发布时间:2022-05-15
下一篇:
PHP gmp_add函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap