El módulo Math::BigInt en Perl proporciona objetos que representan números enteros con precisión arbitraria y operadores aritméticos sobrecargados.
El método brsft() del módulo Math::BigInt se usa para desplazar a la derecha el valor dado por una base dada como parámetro.
Sintaxis: Math::BigInt->brsft()
Parámetro:
$y- número de veces que se debe realizar el cambio
$n- base del cambio
Devuelve: un resultado al dividir el número por la base por el número dado de veces
Nota: Por defecto toma 2 como base.
Ejemplo 1:
perl
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt; # Right shifting one time with base 2 $x = Math::BigInt->new(25); $x->brsft(1); # same as $x >> 1 print("$x\n"); # Right shifting 2 times with base 10 $x = Math::BigInt->new(2345); $x->brsft(2, 10); print($x);
Producción:
12 23
Hay una excepción con el valor negativo y es solo con la base 2, la salida será la diferencia entre la salida real y el número original. El siguiente ejemplo lo aclarará:
Ejemplo 2:
perl
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt; # Right shifting one time with base 2 $x = Math::BigInt->new(31); $x->brsft(1); # same as $x >> 1 print("$x\n"); # Right shifting the negative value $x = Math::BigInt->new(-31); $x->brsft(1); print($x);
Producción:
15 -16