[C#] Operators and Expressions - Задача 10 (и 11)


3

Не можах да намеря, тема за тази задача, (намерих само за JS Operators and Expressions 10) а исках да си сверя, задачата, която всъщност е модифицирана 5-та задача от [C#] Operators and Expressions:



10 .Write a boolean expression that returns if the bit at position p (counting from 0) in a given integer number v has value of 1. Example: v=5; p=1 --> false.
 
Ето моето решение:

using System;
 
 
namespace isBit1
{
    class ifBit
    {
        static void Main()
        {
 
 
            Console.WriteLine("Fint if the bit on a given position of a given integer is 1:\n");
 
            Console.WriteLine("Type the integer you want:\n");
            int v = int.Parse(Console.ReadLine());
 
            Console.WriteLine("Type the position of the bit you want to check:");
            int p = int.Parse(Console.ReadLine());
 
            int m = 1;
            int mask = m << p;
            int nAndMask = v & mask;
            int bit = nAndMask >> p;
 
            Console.WriteLine("\n");
 
            bool check = (bit == 1);
 
            if (check)
            {
                Console.WriteLine("It is {0} that the bit on position: \"{1}\" of the integer: \"{2}\" is 1", check, p, v);
            }
            else
            {
                Console.WriteLine("It is {0} that the bit on position: \"{1}\" of the integer: \"{2}\" is 1", check, p, v);
            }
 
 
        }
    }
}
 

 




Отговори



0

Ето го и моя вариант на 10 аз направо го направих така както е от презентацията.

http://pastebin.com/qzK4rpu7


от Ilian987 (387 точки)


1
Предлагам ви и моя вариант на решение на тази задача, надявам се доста опростен за хората, които все още имат проблеми с if, else и прочие:
namespace ReturnBitAtPositionP { class ReturnBit { static void Main(string[] args) { int p = 1; int v = 5; bool bitAtP = (v >> p & 1) == 1; Console.WriteLine(bitAtP); } } }

от K.Mladenov (10 точки)