function readBigInt($isCollectionElement = false) {
		if ($isCollectionElement) {
			$length = $this->readShort();
		} else {
			$length = 8;
		}
		$data = $this->read($length);
		$arr = unpack('N2', $data);

		if (PHP_INT_SIZE == 4) {
			$hi = $arr[1];
			$lo = $arr[2];
			$isNeg = $hi  < 0;
			
			// Check for a negative
			if ($isNeg) {
				$hi = ~$hi & (int)0xffffffff;
				$lo = ~$lo & (int)0xffffffff;
				
				if ($lo == (int)0xffffffff) {	
					$hi++;
					$lo = 0;
				} else {
					$lo++;
				}
			}
			
			// Force 32bit words in excess of 2G to pe positive - we deal wigh sign
			// explicitly below
			if ($hi & (int)0x80000000) {
				$hi &= (int)0x7fffffff;
				$hi += 0x80000000;
			}
			
			if ($lo & (int)0x80000000) {
				$lo &= (int)0x7fffffff;
				$lo += 0x80000000;
			}
			
			$value = $hi * 4294967296 + $lo;
			
			if ($isNeg) {
				$value = 0 - $value;
			}
		} else {
			if ($arr[2] & 0x80000000) {
				$arr[2] = $arr[2] & 0xffffffff;
			}
			
			if ($arr[1] & 0x80000000) {
				$arr[1] = $arr[1] & 0xffffffff;
				$arr[1] = $arr[1] ^ 0xffffffff;
				$arr[2] = $arr[2] ^ 0xffffffff;
				$value = 0 - $arr[1]*4294967296 - $arr[2] - 1;
			} else {
				$value = $arr[1]*4294967296 + $arr[2];
			}
		}

		return $value;
 	}
function readBigInt($isCollectionElement = false) {
		if ($isCollectionElement) {
			$length = $this->readShort();
		} else {
			$length = 8;
		}
		$data = $this->read($length);
		$arr = unpack('N2', $data);

		if (PHP_INT_SIZE == 4) {
			$hi = $arr[1];
			$lo = $arr[2];
			$isNeg = $hi  < 0;
			
			// Check for a negative
			if ($isNeg) {
				$hi = ~$hi & (int)0xffffffff;
				$lo = ~$lo & (int)0xffffffff;
				
				if ($lo == (int)0xffffffff) {	
					$hi++;
					$lo = 0;
				} else {
					$lo++;
				}
			}
			
			// Force 32bit words in excess of 2G to pe positive - we deal wigh sign
			// explicitly below
			if ($hi & (int)0x80000000) {
				$hi &= (int)0x7fffffff;
				$hi += 0x80000000;
			}
			
			if ($lo & (int)0x80000000) {
				$lo &= (int)0x7fffffff;
				$lo += 0x80000000;
			}
			
			$value = $hi * 4294967296 + $lo;
			
			if ($isNeg) {
				$value = 0 - $value;
			}
		} else {
			if ($arr[2] & 0x80000000) {
				$arr[2] = $arr[2] & 0xffffffff;
			}
			
			if ($arr[1] & 0x80000000) {
				$arr[1] = $arr[1] & 0xffffffff;
				$arr[1] = $arr[1] ^ 0xffffffff;
				$arr[2] = $arr[2] ^ 0xffffffff;
				$value = 0 - $arr[1]*4294967296 - $arr[2] - 1;
			} else {
				$value = $arr[1]*4294967296 + $arr[2];
			}
		}

		return $value;
 	}
function readBigInt ( $ isCollectionElement = false ) { if ( $ isCollectionElement ) { $ length = $ this -> readShort ( ) ; } else { $ length = 8 ; } $ data = $ this -> read ( $ length ) ; $ arr = unpack ( 'N2' , $ data ) ; if ( PHP_INT_SIZE == 4 ) { $ hi = $ arr [ 1 ] ; $ lo = $ arr [ 2 ] ; $ isNeg = $ hi < 0 ; // Check for a negative if ( $ isNeg ) { $ hi = ~ $ hi & ( int ) 0xffffffff ; $ lo = ~ $ lo & ( int ) 0xffffffff ; if ( $ lo == ( int ) 0xffffffff ) { $ hi ++ ; $ lo = 0 ; } else { $ lo ++ ; } } // Force 32bit words in excess of 2G to pe positive - we deal wigh sign // explicitly below if ( $ hi & ( int ) 0x80000000 ) { $ hi &= ( int ) 0x7fffffff ; $ hi += 0x80000000 ; } if ( $ lo & ( int ) 0x80000000 ) { $ lo &= ( int ) 0x7fffffff ; $ lo += 0x80000000 ; } $ value = $ hi * 4294967296 + $ lo ; if ( $ isNeg ) { $ value = 0 - $ value ; } } else { if ( $ arr [ 2 ] & 0x80000000 ) { $ arr [ 2 ] = $ arr [ 2 ] & 0xffffffff ; } if ( $ arr [ 1 ] & 0x80000000 ) { $ arr [ 1 ] = $ arr [ 1 ] & 0xffffffff ; $ arr [ 1 ] = $ arr [ 1 ] ^ 0xffffffff ; $ arr [ 2 ] = $ arr [ 2 ] ^ 0xffffffff ; $ value = 0 - $ arr [ 1 ] * 4294967296 - $ arr [ 2 ] - 1 ; } else { $ value = $ arr [ 1 ] * 4294967296 + $ arr [ 2 ] ; } } return $ value ; }
Read unsigned big int;

@return int;
Read unsigned big int ;