Bitwise Operators-Problem 10. * Tri-bit Switch
Здравейте,
Някой може ли да ми кайже къде ми е грешката? Мисля че маската не се измества коректно в ляво (например когато р=59).
Write a program that inverts the 3 bits from position p to the left with their opposites (e.g. 111 -> 000, 101 -> 010). Print the resulting number on the console.
using System;
class Program
{
static void Main()
{
long n = long.Parse(Console.ReadLine());
int p = int.Parse(Console.ReadLine());
long mask = (7 << p);
//TODO: Make the mask needed to invert 3 bits at position p
long result = n ^ mask;
//TODO: Use the ^ (XOR) operation with the number and the mask to get the result
Console.WriteLine(result);
}
}
Благодаря колега,
Не бях обърнал внимание, че точно 7 ми създава проблема, но предполагах че проблема е в големината на някое от числата.
Здрасти! Аз искам да питам това решение на задачата валидно ли е, тъй като виждам някакви цикли тук, а аз още не съм ги учил.
static void Main()
{
long n = long.Parse(Console.ReadLine());
int p = int.Parse(Console.ReadLine());
long mask = (long)7 << p;
long result = n ^ mask;
Console.WriteLine(result);
}
Поздрави!
Вярно е решението.