Loading...
JOHNY avatar JOHNY 196 Точки

[Homework valuation] - Problem 11.Bitwise: Extract Bit #3

Здравейте,

Съжалявам, че пускам нова тема, но търсачката връща само една, която е по тематиката, а тя е заключена и е даден линк, който води към нищото.

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

Problem 11. Bitwise: Extract Bit #3

Using bitwise operators, write an expression for finding the value of the bit #3 of a given unsigned integer. The bits are counted from right to left, starting from bit #0. The result of the expression should be either 1 or 0. Examples:

n

binary representation

bit #3

5

 00000000 00000101

   0

0

 00000000 00000000

   0

15

 00000000 00001111

   1

5343

 00010100 11011111

   1

62241

 11110011 00100001

   0

 

Решението ми го има ТУК.

 

Преди малко получих коментар на домашното си, който гласи (буквално пействам):
"Problem 11 ne ti dovurshen, no vsichko drugo e tochno ;)".

Няколко пъти четох условието на задачата и единственото, в което според мен съм "мръднал" е, че не принтва , или 0, а има текст, който казва "Third bit is ..." като посочва верен отговор. Не забелязвам обаче да не съм изпълнил условие на задачата и тя да е "недовършена".

Нямам против коментара (освен, че е на шльокавица), не ме интересува кой го е оценил,  не съм взел присърце и вероятно занижената оценка, просто пустото любопитство ме кара да намеря пропуска си и да го поправя. Това ще ми помогне да съм на 100% коректен в решенията и за в бъдеще.

Моля да прегледате и ако наистина съм пропуснал нещо да ми го посочите.

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

Тагове:
1
Programming Basics 13/04/2015 21:15:19
Filkolev avatar Filkolev 4482 Точки

1) Алгоритъмът ти не е най-добрият, но програмата работи вярно => коментарът е некоректен.

2) Коментарът не посочва къде е пропускът, нито казва как да бъде отстранен; не казва нищо конкретно и по останалите задачи => той е неполезен. Силно е съмнително дали изобщо е имало някаква проверка.

3) Да не говорим, че който го е писал не си е правил труда и да си смени езика, на който пише. Да драснеш 4 думи на шльокавица за 10+ задачи е несериозно.

Колеги, ако държите на качеството, недейте да толерирате такава мързелива обратна връзка, спокойно отбелязвайте такива коментари като некоректни и безполезни.

А конкретно по решението ти малко по-полезен фийдбек - по-чисто е ако проверяваш бита с формулата:

int bit = (number >> positions) & 1;

Така ще ти е по-лесно да оперираш с него впоследствие ако се наложи, а в повечето задачи ще се наложи.

3
enevlogiev avatar enevlogiev 1168 Точки

Може проверяващият да се е размрънкял, понеже в условието пише "unsigned integer". Това не оправдава коментара му.

0
JOHNY avatar JOHNY 196 Точки

Fil,

Благодаря за препоръката и забележката - полезни са. Следващата задача реших по начина, който си споменал, а тази я правих по записки от лекцията (маска, ала бала). Все пак препоръката ти е важна, особено що се касае за бъдещото ползване на бита. Благодаря!

Enevlogiev,

Ти как тълкуваш unsigned integer? Аз лично го възприех като инт, който получава стойност от конзолата/потребителя и така го направих. Ако не е вярно, казвай да си направя изводи овреме.:)

1
petiahr avatar petiahr 31 Точки

Ами... според мен в задачата наистина има проблем, и той е ако така намираш бита

foundBit = number & mask, то тогава foundBit ще е 0 или 1000(което е 8). И ако направиш тази проверка

if (foundBit ==1) (а не проверката if (foundBit ==0)) , то задачата няма да работи. За да няма проблем просто трябва

foundBit = (number & mask)>>3 и тогава foundBit ще е 0 или 1.

А относно коментара .. ами не е много коректен и аз апелирам да се пише по-подробно с конкретика, а не да се казва нещо от типа " Някои задачи имат интересни решения ....".

Според мен всеки който пише трябва така да коментира, че след време ако си прочете коментара той да го разбира и без да отваря решенията да казва какво е имал впредвид. А в момента коментиращият просто е отчел поредната домашна.

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