3v4l.org

run code in 300+ 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.0.0


preferences:
178.89 ms | 1411 KiB | 29 Q