3v4l.org

run code in 500+ PHP versions simultaneously
<?php $n = 2147483647; shift($n); echo "\n"; echo "\n"; echo "\n"; echo "\n"; $n = 2147483648; shift($n); function out($a, $b, $c, $b2 = '0', $c1 = ' ') { $padstra = 40; $padstrb = 23; echo str_pad($a, $padstra, ' ', STR_PAD_LEFT) . " " . str_pad(decbin($b), 32, $b2, STR_PAD_LEFT) . " " . str_pad($c, $padstrb, $c1) . "\n"; } function shift($n) { out($n , $n , '$n' ); echo "\n"; out('A:', $n >> 1 , '$n >> 1' ); out('B:', 0xFFFFFFFF , '0xFFFFFFFF' ); out('A & B:', ($n >> 1) & 0xFFFFFFFF , '($n >> 1) & 0xFFFFFFFF' ); echo "\n"; out('C:', $n , '$n' ); out('D:', 0x00000001 , '0x00000001' ); out('C & D:', $n & 0x00000001 , '$n & 0x00000001' ); echo "\n"; out('C & D:', $n & 0x00000001 , '$n & 0x00000001' ); out('(C & D) << 31:', ($n & 0x00000001) << 31 , '($n & 0x00000001) << 31' ); echo "\n"; out('A & B:', ($n >> 1) & 0xFFFFFFFF , '($n >> 1) & 0xFFFFFFFF' ); out('(C & D) << 31:', ($n & 0x00000001) << 31 , '($n & 0x00000001) << 31' ); out('(A & B) | ((C & D) << 31):', ($n >> 1) & 0xFFFFFFFF | ($n & 0x00000001) << 31 , '($n >> 1) & 0xFFFFFFFF | ($n & 0x00000001) << 31'); }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eWPLf
function name:  (null)
number of ops:  13
compiled vars:  !0 = $n
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, 2147483647
    4     1        INIT_FCALL_BY_NAME                                           'shift'
          2        SEND_VAR_EX                                                  !0
          3        DO_FCALL                                          0          
    5     4        ECHO                                                         '%0A'
    6     5        ECHO                                                         '%0A'
    7     6        ECHO                                                         '%0A'
    8     7        ECHO                                                         '%0A'
    9     8        ASSIGN                                                       !0, 2147483648
   10     9        INIT_FCALL_BY_NAME                                           'shift'
         10        SEND_VAR_EX                                                  !0
         11        DO_FCALL                                          0          
   40    12      > RETURN                                                       1

Function out:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eWPLf
function name:  out
number of ops:  34
compiled vars:  !0 = $a, !1 = $b, !2 = $c, !3 = $b2, !4 = $c1, !5 = $padstra, !6 = $padstrb
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   12     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV_INIT                                            !3      '0'
          4        RECV_INIT                                            !4      '+'
   13     5        ASSIGN                                                       !5, 40
   14     6        ASSIGN                                                       !6, 23
   16     7        INIT_FCALL                                                   'str_pad'
          8        SEND_VAR                                                     !0
          9        SEND_VAR                                                     !5
         10        SEND_VAL                                                     '+'
         11        SEND_VAL                                                     0
         12        DO_ICALL                                             $9      
   17    13        CONCAT                                               ~10     $9, '+'
   18    14        INIT_FCALL                                                   'str_pad'
         15        INIT_FCALL                                                   'decbin'
         16        SEND_VAR                                                     !1
         17        DO_ICALL                                             $11     
         18        SEND_VAR                                                     $11
         19        SEND_VAL                                                     32
         20        SEND_VAR                                                     !3
         21        SEND_VAL                                                     0
         22        DO_ICALL                                             $12     
         23        CONCAT                                               ~13     ~10, $12
   19    24        CONCAT                                               ~14     ~13, '+'
   20    25        INIT_FCALL                                                   'str_pad'
         26        SEND_VAR                                                     !2
         27        SEND_VAR                                                     !6
         28        SEND_VAR                                                     !4
         29        DO_ICALL                                             $15     
         30        CONCAT                                               ~16     ~14, $15
         31        CONCAT                                               ~17     ~16, '%0A'
         32        ECHO                                                         ~17
   21    33      > RETURN                                                       null

End of function out

Function shift:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eWPLf
function name:  shift
number of ops:  82
compiled vars:  !0 = $n
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   23     0  E >   RECV                                                 !0      
   24     1        INIT_FCALL                                                   'out'
          2        SEND_VAR                                                     !0
          3        SEND_VAR                                                     !0
          4        SEND_VAL                                                     '%24n'
          5        DO_FCALL                                          0          
   25     6        ECHO                                                         '%0A'
   26     7        INIT_FCALL                                                   'out'
          8        SEND_VAL                                                     'A%3A'
          9        SR                                                   ~2      !0, 1
         10        SEND_VAL                                                     ~2
         11        SEND_VAL                                                     '%24n+%3E%3E+1'
         12        DO_FCALL                                          0          
   27    13        INIT_FCALL                                                   'out'
         14        SEND_VAL                                                     'B%3A'
         15        SEND_VAL                                                     4294967295
         16        SEND_VAL                                                     '0xFFFFFFFF'
         17        DO_FCALL                                          0          
   28    18        INIT_FCALL                                                   'out'
         19        SEND_VAL                                                     'A+%26+B%3A'
         20        SR                                                   ~5      !0, 1
         21        BW_AND                                               ~6      ~5, 4294967295
         22        SEND_VAL                                                     ~6
         23        SEND_VAL                                                     '%28%24n+%3E%3E+1%29+%26+0xFFFFFFFF'
         24        DO_FCALL                                          0          
   29    25        ECHO                                                         '%0A'
   30    26        INIT_FCALL                                                   'out'
         27        SEND_VAL                                                     'C%3A'
         28        SEND_VAR                                                     !0
         29        SEND_VAL                                                     '%24n'
         30        DO_FCALL                                          0          
   31    31        INIT_FCALL                                                   'out'
         32        SEND_VAL                                                     'D%3A'
         33        SEND_VAL                                                     1
         34        SEND_VAL                                                     '0x00000001'
         35        DO_FCALL                                          0          
   32    36        INIT_FCALL                                                   'out'
         37        SEND_VAL                                                     'C+%26+D%3A'
         38        BW_AND                                               ~10     !0, 1
         39        SEND_VAL                                                     ~10
         40        SEND_VAL                                                     '%24n+%26+0x00000001'
         41        DO_FCALL                                          0          
   33    42        ECHO                                                         '%0A'
   34    43        INIT_FCALL                                                   'out'
         44        SEND_VAL                                                     'C+%26+D%3A'
         45        BW_AND                                               ~12     !0, 1
         46        SEND_VAL                                                     ~12
         47        SEND_VAL                                                     '%24n+%26+0x00000001'
         48        DO_FCALL                                          0          
   35    49        INIT_FCALL                                                   'out'
         50        SEND_VAL                                                     '%28C+%26+D%29+%3C%3C+31%3A'
         51        BW_AND                                               ~14     !0, 1
         52        SL                                                   ~15     ~14, 31
         53        SEND_VAL                                                     ~15
         54        SEND_VAL                                                     '%28%24n+%26+0x00000001%29+%3C%3C+31'
         55        DO_FCALL                                          0          
   36    56        ECHO                                                         '%0A'
   37    57        INIT_FCALL                                                   'out'
         58        SEND_VAL                                                     'A+%26+B%3A'
         59        SR                                                   ~17     !0, 1
         60        BW_AND                                               ~18     ~17, 4294967295
         61        SEND_VAL                                                     ~18
         62        SEND_VAL                                                     '%28%24n+%3E%3E+1%29+%26+0xFFFFFFFF'
         63        DO_FCALL                                          0          
   38    64        INIT_FCALL                                                   'out'
         65        SEND_VAL                                                     '%28C+%26+D%29+%3C%3C+31%3A'
         66        BW_AND                                               ~20     !0, 1
         67        SL                                                   ~21     ~20, 31
         68        SEND_VAL                                                     ~21
         69        SEND_VAL                                                     '%28%24n+%26+0x00000001%29+%3C%3C+31'
         70        DO_FCALL                                          0          
   39    71        INIT_FCALL                                                   'out'
         72        SEND_VAL                                                     '%28A+%26+B%29+%7C+%28%28C+%26+D%29+%3C%3C+31%29%3A'
         73        SR                                                   ~23     !0, 1
         74        BW_AND                                               ~24     ~23, 4294967295
         75        BW_AND                                               ~25     !0, 1
         76        SL                                                   ~26     ~25, 31
         77        BW_OR                                                ~27     ~24, ~26
         78        SEND_VAL                                                     ~27
         79        SEND_VAL                                                     '%28%24n+%3E%3E+1%29+%26+0xFFFFFFFF+%7C+%28%24n+%26+0x00000001%29+%3C%3C+31'
         80        DO_FCALL                                          0          
   40    81      > RETURN                                                       null

End of function shift

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
180.36 ms | 2898 KiB | 27 Q