How to check whether the number has only first and last bits set in C#

1 Answer

0 votes
using System;
 
class Program
{
    static void print_bits(int n) { 
        for (int i = 7; i >= 0; i--)
            Console.Write((n >> i) & 1);
        Console.WriteLine();
    } 
    static bool is_only_first_and_last_bit_set(int n) { 
        return (((n - 1) & (n - 2)) == 0); 
    } 
    static void Main()
    {
        int n = 129;
      
        print_bits(n);
        print_bits(n - 1);
        print_bits(n - 2);
        print_bits((n - 1) & (n - 2));
          
        if (is_only_first_and_last_bit_set(n)) 
            Console.Write("Yes\n"); 
        else
            Console.Write("No\n"); 
    }
}
 
 
/*
run:
 
10000001
10000000
01111111
00000000
Yes
 
*/

 



answered Mar 9, 2019 by avibootz
...