Advertisement
Fhernd

ComprobacionPotenciaDe2.cs

Sep 7th, 2014
5,408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.31 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Articulos.Preguntas.P0720
  4. {
  5.     public sealed class ComprobacionPotenciaDe2
  6.     {
  7.         public static void Main()
  8.         {
  9.             ulong numero = 8;
  10.             bool esPotenciaDe2 = false;
  11.            
  12.             esPotenciaDe2 = EsPotenciaDe2 (numero);
  13.            
  14.             Console.WriteLine ("\n{0} {1}es potencia de 2.",
  15.                 numero.ToString (),
  16.                 esPotenciaDe2 ? " " : "no "
  17.             );
  18.            
  19.             numero = 11;
  20.            
  21.             esPotenciaDe2 = EsPotenciaDe2 (numero);
  22.            
  23.             Console.WriteLine ("\n{0} {1}es potencia de 2.\n",
  24.                 numero.ToString (),
  25.                 esPotenciaDe2 ? " " : "no "
  26.             );
  27.         }
  28.        
  29.         // Este método comprueba que un número entero de 64
  30.         // bits sin signo (ulong) es potencia de 2:
  31.         private static bool EsPotenciaDe2(ulong numero)
  32.         {
  33.             // Primero comprueba que es distinto de 0,
  34.             // luego resta una unidad del número `numero`
  35.             // realiza la operación bitwise AND, finalmente
  36.             // comprueba que sea igual a 0;
  37.             // == 0 -> true
  38.             // != 0 -> false
  39.             return ((numero != 0) && ((numero & (numero - 1)) == 0));
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement