Професионална програма
Loading...
+ Нов въпрос
remote87 avatar remote87 121 Точки

[Exercise] Operators Expressions and Statements - Problem 7: First Bit

Здравейте!

Извинявам се, но тук не ми е съвсем ясно, това ли трябва да е кода на упражнението:

http://pastebin.com/8egrnXMP

Питам ви, т.к. в Hints, 4. е казано, че n е примерно 51, което трябва да е input нали така или аз нещо не разбирам условието на задачата?

EDIT: ако не се лъжа, аз май съм решил по-скоро 8 задача p-th BIt, а не 7ма с този код :D

Тагове:
0
Programming Basics 27/08/2015 13:38:04
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Здравейте,

понеже виждам, че в кода си използвал int, а говориш за 51-вия бит, дали си взел в предвид това: https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx смисъл на първо четене мисля, че ползваш int, който е 32-bit, а не 64. Разгледай линка мисля, че ще ти помогне.

Поздрави,

1
remote87 avatar remote87 121 Точки

Здрасти!

Не си ме разбрал / понякога и на мен ми е трудно :D / - по моя код, аз въвеждам числото 51 и гледам неговите битове, но твоя пост ме наведе на мисълта, че може би това е идеята - да се въведе друг тип променлива и да се търси, в случая 51я бит.

Точно това питах, дали аз бъркам условието на задачата / което явно е така /, защото аз имах друго предвид първоначално :)

Благодаря!

1
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Такамм, ако не си го разгдал все още, условието е, че искат от тебе да намериш бита на позиция 6 да кажеме, дали е 1 или 0. Аз лично за да ми е по лесно използвам Console.WriteLine(Convert.ToString(number, 2).PadLeft(8, '0')). Защото ако имам числото 51 ще ми го конвертира в козолата в бинарно презентиране 00110011, а ако напиша 1 в бинарно презентиране конзолата ще принтира 00000001 и когато използваш 51 >> 6 и резултата сложиш в (Convert.ToString(number, 2).PadLeft(8, '0')) аз лично го използвам за да мога по-лесно да си проследявам процеса и да видя какво става, но имаи впредвид, че това действие работи бавно за това го използвай като информативен резултат .  ще видиш след отместването на 6 позиция, какъв е бита 1 или 0 и следователно същия този бит ще се сравни с 1 като оператора е & и действа 1 & 1 = 1, а 1 & 0  = 0;

Надявам се да съм ти помогнал с нещо, ако мога да съм ти полезен с нещо пиши по всяко време.

Поздрави,

1
remote87 avatar remote87 121 Точки

Хаха аз съм по-старомоден и си пиша битовете на листче едно под друго :D

Благодаря за инфото и за помощта!

1