Loading...
kikuzmanov avatar kikuzmanov 6 Точки

Bitwise Operators: Problem 10. Tri-bit Switch

Здравейте,

Условието на задачата е следното: 

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 TriBitSwitch
{
    static void Main()
    {
        long n = long.Parse(Console.ReadLine());
        long p = long.Parse(Console.ReadLine());
        long mask = 7 << p;
        long result = n ^ mask;
        Console.WriteLine(result);
    }
}

В маската ми дава следната грешка: Operator '<<' cannot be applied to operands of type 'int' & 'long'.

Когато кастна 7 към long пък ми дава Operator '<<' cannot be applied to operands of type 'long' & 'long'. -> long mask = (long)7 << p;

Някакви идеи къде бъркам?

Благодаря! :)

Тагове:
0
Programming Basics
Filkolev avatar Filkolev 4482 Точки

Защо p да е long? Това е позиция. Така казваш, че очакваш да работиш с числа, които може да са до 2 ^ long.MaxValue, което е нереалистично. Направи го int, но седмицата нека все пак е long, понеже ако опиташ да изместиш достатъчно пъти ще превъртиш и ще има бъгове при гранични случаи.

1
kikuzmanov avatar kikuzmanov 6 Точки

Благодаря за бързия отговор. Стана! :) И доста тъпа грешка от моя страна. 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.