[C# 1] Домашно - Operators and Expressions - 13. Modify Bit


0

Здравейте!

Имам въпрос относно задача 03. Operators and Expressions - 13. Modify Bit 

Аз направих програмата http://pastebin.com/hb4ijRme 

И за примерните входове работеше и после го пратих в BGCoder и видях, че гърми в 3 задачи а останалите са верни и после видях, че в задачата пише, че числата са 64 бита а не 32 и аз го оправих и сега вместо 3 гръмнали точки показва 3 грешни :D

После аз дебъгвах с long.max числото което е най-голямото 64-битово и всичко си работеше и не знам къде ми е грешката.

Благодаря предварително :)




Отговори



1

Здравей,

В презентации от минали години можеш да видиш как се сетва даден бит на 0 или 1, можеш и в това решение да ги видиш, няма нужда от цикли итн:

using System; class SetBits { static void Main() { long number = long.Parse(Console.ReadLine()); int position = int.Parse(Console.ReadLine()); int bit = int.Parse(Console.ReadLine()); long result; if (bit == 1) { long mask = 1 << position; result = number | mask; } else { long mask = ~(1 << position); result = number & mask; } Console.WriteLine(result); } }


от topalkata (6442 точки)


0

Мерси!

Трябва да седна и да си преговоря побитовите операции, че съм забравил доста от тях.


от Merhatt (1406 точки)