PHP处理创建和处理超过int范围的数据

	function getCode($id){
		if( !isset($id) || $id > 0xFF || $id < 0x0 ){
			return null;
		}
		//$a 先取0~Integer.MaxValue之间的数,然后左移32位,等效与*2的32次方
		$a = bcmul( rand( 0 , 0x7FFFFFFF ) , bcpow( 2 , 32 ) );
		$b = bcadd( rand( 0 , 0x7FFFFFFF ) & 0x7FFFFF00 , $id );
		return bcadd( $a , $b );
	}
	function getCompanyID($code){
		if( !isset($code) || $code < 0 ){
			return null;
		}
		//接下来的操作等同于 $code&0xFF
		$num  = 0;
		for( $i = 0 ; $i < 8 ; $i++ ) {
			$num += intval(bcmod( $code , 2 )) * pow( 2 , $i );
			$code = bcdiv( $code , 2 );
		}
		return $num;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值