Vyacheslav
да
А что выдает этот код? Он же рисует число в двоичной системе, на сколько я понимаю?
Kirill
задача 1
Vyacheslav
задача 1
А разве двоичные разряды соответствуют десятичным? То есть пропуская разряд в двоичной системе ты пропускаешь разряд в десятичной? Или исходное число в двоичной системе даётся? В общем не очень понятна постановка и вдвойне непонятно решение
Kirill
я так понимаю число в двоичной системе, если перевести то будет какое-то число нормально в десятичной
Kirill
Над счет второго предложения, думаю да
Vyacheslav
я так понимаю число в двоичной системе, если перевести то будет какое-то число нормально в десятичной
Так ведь нужно не какое-то, а составленное из разрядов данного числа
Kirill
ну да
Kirill
у меня это число n
Kirill
и из нечетный разрядов этого числа нужно составить число
Kirill
и что бы оно было одно байтовое
Vyacheslav
и из нечетный разрядов этого числа нужно составить число
Ну, если представить себе что мы о двоичных числах говорим, то первый вариант - вполне себе И чтобы его переработать для взятия нечётных разрядов достаточно маску сменить А если о десятичных - то мне не очень понятно причем тут битовые операции
Kirill
да о десятичных я просто как пример взял, если ты например знаешь на каком месте стоит разряд, и ты под это код пишешь
Kirill
а если бы ты не знал что 0 разряд это четное
Kirill
какой кол написать что бы компилятор это сам вычеслили
Kirill
и можно ли так вообще
Vyacheslav
какой кол написать что бы компилятор это сам вычеслили
Ты никогда не писал программу определяющую четность числа?
Kirill
так четность числа это понятно
Kirill
но в четном разряде может же стоять нечетное число
Vyacheslav
но в четном разряде может же стоять нечетное число
Да хоспаде Какая разница что означает число? Номер разряда, или цифру которая там написана?
Kirill
хотя скорее всего я понял что ты имеешь в виду все таки
Kirill
номер разряда
Kirill
и четный он или нет
Vyacheslav
Ну так номер разряда есть, значит можно определить этот номер чётный или нет. Другой вопрос что у тебя цикл на 8 шагов, и они для тебя все "четные" или "нечётные" И совершенно негде тут определять его четность. Других разрядов этот код не касается
Kirill
вово зачем считать четный или нет, если бы знаем сразу что он четный, и будет пропускать нечетный >>2
Kirill
а цикл 8 шагом потому что нужно однобайтовое число
Vyacheslav
вово зачем считать четный или нет, если бы знаем сразу что он четный, и будет пропускать нечетный >>2
Во во Так что верни первый вариант и замени маску, чтоб она с нечётной позиции начиналась
Kirill
маску зачем трогать
Kirill
там просто число 1
Kirill
и оно делает побитовое умножение что бы узнать какое число там
Vyacheslav
маску зачем трогать
Вот я ж с того и начал: как твой код находит четные или нечётные позиции?
Kirill
смотри
Kirill
число начинается с 0 разряда и оно мы знаем четное, я в цикле перед побитовым умножением сдвигаю на одну позицию впрао, позиция теперь нечетная, происходит умножение, выводится число и опять на одну позицию сдвигается на четное число. Это 1 цикл
Kirill
И так заного в каждом цикле он будет пере умножением сдвигать число
Igor
Но код странный мне не нравится сама идея писать программу которая выводит результат а не функцию которая возвращает нужное решение. Потом приходят джуны на собес и пытаются писать функции которые печатают.
Kirill
на нечетную позицию
Kirill
хз мне препод проверил сказал правильно
Igor
Тебя спрашивают не как должно а как работает конкретно твой код что ты дал
Kirill
ну я понимаю что оно делает
Igor
ну судя по твоим коментариям нет.
Igor
Поскольку ты выводишь биты с ходу. то ты работаешь не с 0 разряда а со старших и именно это написанно в коде. А ты упорно говоришь о 1 и о 0 бите
Kirill
где я не понял?)
Kirill
Ладно, на что маску сменить?
Igor
да достаточно маску сдвинуть на 1 и все
Kirill
ну или как
Igor
Если бы ты понимал как работает код этот вопрос бы не возник
Igor
в маску просто нужно дописать еще один ноль. и все
Kirill
я сдвинул маску
Vyacheslav
Ладно, на что маску сменить?
У тебя в маске ключ на какой позиции стоит, и куда передвинется после сдвига на 2?
Kirill
так резульятат не поменялся\\\
Kirill
и почему моим способо неправильно, а с маской правильно?
Igor
твой способ это какой?
Igor
с маской короче и быстрее код. а именно правильных можно миллион написать решений.
Vyacheslav
и почему моим способо неправильно, а с маской правильно?
Не почему И то и другое даёт один и тот же результат Только в случае с маской у тебя одна функция и два набора входных данных А твой вариант это две разных функции
Vyacheslav
Вообще мозговыносящая задача Прежде чем поймёшь что нужно сделать весь мозг сломаешь нафиг)
Kirill
твой способ это какой?
что я заведомо знаю что умножение идет с четного разряда, и перед умножением я сдвигаю на нечетный разря
Igor
вот это?
Igor
хотя о како умножении речь я хз ;)
Kirill
да
Kirill
ну на маску, побитовое умножение
Igor
да
потому что разряды нумеруются с нуля и начинаются с четных?
Kirill
да
Igor
что да ты двигаешь в право ... а значит ты теряешь старший нечетный бит
Igor
для нечетных битов маска "больше" чем для четных а ты все двигаешь в право т.е уменьшаешь.
bi_zi
Привет подскажите у меня есть +- 100 картинок мне их оставить на фронте и подгружать из локальной папки или же закинуть на бэкенд и уже выгружать с него какое решение лучше?
Igor
можно было до цикла сдвинуть маску в лево на 1 бит и оставить тот же код ... хотя почему не дописать один нолик в маску мне не понятно
Misha
И ресайзить под нужный размер
bi_zi
у меня бэк mongoDB
Kirill
тип 0 разряд будет выводиться первым и он уже будет не нуленвой разряд
Igor
если маску двигать влево, то код будет задом на перед выводиться
двигать маску в право ... чтобы маска для четных битов стала маской для нечетных ее нужно сдвинуть один раз на 1 бит влево.
Igor
Представь что в твоей программе цикл всего на 1 бит а не на 8 у тебя маска будет 0b1; теперь представь что будет делать твой код который сдвигает сперва в право на 1 потом выводит потом еще раз сдвигает в право. Именно это произойдет на последнем проходе цикла.
Kirill
ну с четного на нечетное - вывод, с нечетного на четное. Цикл закончился и заного
Igor
Ладно проехали ... будем считать что я херово объясняю ... ты нихера не отдуплил.
Kirill
да, я реально не понимаю сорян