123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- function arraycopy($srcArray,$srcPos,$destArray, $destPos, $length){//System.arraycopy
- $srcArrayToCopy = array_slice($srcArray,$srcPos,$length);
- array_splice($destArray,$destPos,$length,$srcArrayToCopy);
- return $destArray;
- }
- function overflow32($value) {//There is no need to overflow 64 bits to 32 bit
- return $value;
- }
- function hashCode( $s )
- {
- $h = 0;
- $len = strlen($s);
- for($i = 0; $i < $len; $i++)
- {
- $h = overflow32(31 * $h + ord($s[$i]));
- }
- return $h;
- }
- function numberOfTrailingZeros($i) {
- if ($i == 0) return 32;
- $num = 0;
- while (($i & 1) == 0) {
- $i >>= 1;
- $num++;
- }
- return $num;
- }
- function intval32bits($value)
- {
- $value = ($value & 0xFFFFFFFF);
- if ($value & 0x80000000)
- $value = -((~$value & 0xFFFFFFFF) + 1);
- return $value;
- }
- function uRShift($a, $b)
- {
- if($b == 0) return $a;
- return ($a >> $b) & ~(1<<(8*PHP_INT_SIZE-1)>>($b-1));
- }
- /*
- function sdvig3($num,$count=1){//>>> 32 bit
- $s = decbin($num);
- $sarray = str_split($s,1);
- $sarray = array_slice($sarray,-32);//32bit
- for($i=0;$i<=1;$i++) {
- array_pop($sarray);
- array_unshift($sarray, '0');
- }
- return bindec(implode($sarray));
- }
- */
- function sdvig3($a,$b) {
- if ($a >= 0) {
- return bindec(decbin($a>>$b)); //simply right shift for positive number
- }
- $bin = decbin($a>>$b);
- $bin = substr($bin, $b); // zero fill on the left side
- $o = bindec($bin);
- return $o;
- }
- function floatToIntBits($float_val)
- {
- $int = unpack('i', pack('f', $float_val));
- return $int[1];
- }
- function fill_array($index,$count,$value){
- if($count<=0){
- return array(0);
- }else {
- return array_fill($index, $count, $value);
- }
- }
|