- 1
- 2
- 3
- 4
int a=0;
while (a<=1 && a>=0) {
a--;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+17
int a=0;
while (a<=1 && a>=0) {
a--;
}
Я даже хз, что тут автор делает...
Очень сомневаюсь.
Никак.
Я помню пару раз писал зеленым.
PS. Вот в постах гкодов не работает.
кстати, что надумал насчет работы в европейской части страны?
Потому что это слишком просто и тривиально ;)
http://ideone.com/s1sGJ5
http://ideone.com/WheSmt
Надо
PS
>Ошибка компиляции комментария: На ГК даже комменты компилятся
http://ideone.com/aICebw
Но более универсальным будет такое решение: Если во второй строчке заменить $1 на другую константу, то можно проверять кратность не только двум, но и произвольной степени двойки.
А в этой вашей сишечке есть аналог bsf?
Он, емнип, медленный, не стоит его юзать без причины.
является ли число четным
А можно условие задания? :)
ava kostoprav 4 часа назад # 0
Определить, используя любой язык программирования (набор в bootcamp), является ли число четным. Причем этот кусок к заданию вообще не имеет отношения. Висит посреди кода и радует глаз.
Ну и лур в начал этой ветки написал a & 1, что проверяет число на нечетность.
> и не минусуй.
я принципиально не минусую. если бы я взялся минусовать, то ты бы захлебнулся.
вот демо.
8(10) = 1000(2)
9(10) = 1001(2)
8&1 = 1000 & 0001 => 0000 четное
9&1 = 1001 & 0001 => 0001 не четное
100
100000
10000000
Видишь у тебя порядки растут, но самая первая(нулевая) единица - всегда первая(нулевая).
Так же и тут. 1000 1001 1010 1011 1100 - самый правый - есть самая первый(нулевой бит).
x*2^0
Да, именно так.
потому что даже подрисовав к ним 0..N (особенно именно в таком порядке бгг) всё равно можно оставить зерно сомнений у читающего
Ну и LSB и MSB это хорошо, но для второго бита то обозначения нет ;)
Т.е. взять младший бит и прибавить к его значению единичку?
Это да, если уж даже всякие MUST, SHALL и т.п. имеют формальное описание.
Т.е. ты отрицаешь то, если в нулевом бите 0, то число четное, а если 1 - то нечетное? ;)
> который может отвечать за что угодно.
В частности за четность ;)
P.S. Ну да, на некоторых редких архитектурах, на которых отрицательные числа записаны не в коде с дополнением до двух, для отрицательных чисел оно не прокатит ;)
Глупая лалка. Причем тут твоя чётность вообще - это лишь представление чисел в битах. В частности, но только анскильный питух скажет, что & 1 - это проверка на чётность, который нихрена не понимает в битах, являясь тотальным питухом, а знает о битах с их питух базара.
ко-ко-ко. Это питушиное созданание.
> это лишь представление чисел в битах
А кто-то с этим спорит? Как моя фраза "если в нулевом бите 0, то число четное, а если 1 - то нечетное" этому противоречит? Я извлек с помощью a & 1 нулевой бит из a, и воспользовался им для проверки четности числа. Так устроит?
>А кто-то с этим спорит? Как моя фраза "если в нулевом бите 0, то число четное, а если 1 - то нечетное" этому противоречит? Я извлек с помощью a & 1 нулевой бит из a, и воспользовался им для проверки четности числа. Так устроит?
Да. Проверка на чётность - это уже интерпритация выхлопа данной операции к определённому формату битиков.
А это - никакое не умножение на два, а сдвиг.
Почему все так категорично? Неуж то нельзя увидеть что-то другое в коде?
Поэтому констекст a & 1 не говорит ниочём. Авось я сделал так a >>= 10; a & 1 и т.п. - всё это для питухов. Максимум, что можешь сказаь "берёт бит".
В этом вся соль байтоебства.
если не нан конечно
Сразу вспоминается http://habrahabr.ru/post/172731/ про |0 в JavaScript. Но это уже другая история оффтоп.
а как фраза не пугает зеленая зелень зеленит зеленую зелень...
</оффтоп>
ЗЫ
Извиняюсь за боян
— Косил косой косой Косой косой косой.
— When the doctor doctors doctor, does the doctor doctor doctor the way the doctor he is doctoring doctors?
a << 31, нопремер
Вы же не удивляетесь, когда ваши питух-векторы конпелятор заменяет на рассово верные пацанские указатели, а классы выпиливает нахрен.
Потому что классы - это абстракция чисто на уровне языка, в коде их быть не может.
Двойные стандарты такие двойные.
Ну для простых структур -да.
А причём тут двойные стандарты?