[C#] Operators, Expressions and Statements - 5 задача


2

 

Условие:  Write a boolean expression for finding if the bit 3 (counting from 0) of a given integer is 1 or 0.
 
Понеже аз си го превеждам така: "Напишете булев израз за да намерите каква е стойноста на 3-тия бит (като броенето започва от 0, един вид 4-тия) от въведено цяло число, 1 или 0.
След като пише "булев израз" може ли да се ползват побитовите оператори или само логическите (които работят с булеви стойности и сформират булеви изрази)? Или трябва поне да е хибрид (да съдържа и от двата вида)?



Отговори



0

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace _05.FindABit
{
    class FindABit
    {
        static void Main(string[] args)
        {
            int n = 8;
            int p = 3;
            int mask = 1 << p;
            int nAndMask = n & mask;
            int bit = nAndMask >> p;
            Console.WriteLine(bit);
        }
    }
}
 

от bankina (268 точки)


3
С булев израз: http://pastebin.com/tqGepryu

от miroslav.tsakov (1476 точки)


0
Става и с 3 реда без да използваме побитови операции. static void Main() { int givenInteger = Convert.ToInt32(Console.ReadLine()); string binary = Convert.ToString(givenInteger, 2); Console.WriteLine("The 3rd bit is " + binary.ElementAt(2)); } } ПП как беше сайта за copy-paste source code да изглежда по-приятно?



0
http://pastebin.com/ или можеш да ползваш и https://github.com/ .

от mbelev (2312 точки)


1

Здравейте,

може ли някой да ми каже дали това е валидно решение за задачата:

http://pastebin.com/3LxMvm9U


от toc (0 точки)


0
Решението е валидно, но малко странно. :) Защото е валидно само за бит номер 3. А ако случайно ти се търси бит номер 4, или 10?? Трябва да се опиташ да напишеш задачата по-общо, да важи за всеки номер на бит, въведен от клавиатурата. Нещо от вида : Console.Write("Enter bit number p = "); int p = int.Parse(Console.ReadLine()); int mask = 1 << p; ............... И т.н. , както са показали колегите. Иначе нещата са hardcode, при всяко различно задание влизаш и променяш, отново и отново...

от TarliT (239 точки)

0
Благодаря за коментара. Вярно, че решението съм го направил малко буквално по условието, където пише че става дума за 3-тия, а не примерно за n-тия бит.

от toc (0 точки)