Помогите понять кусок кода
- Войдите на сайт для отправки комментариев
Пнд, 28/11/2016 - 18:39
Добрый день! В си я новичок. Объясните пожалуйста что значит данный кусок кода.
DisplaysTotal=DisplaysWide*DisplaysHigh; row1 = DisplaysTotal<<4; row2 = DisplaysTotal<<5; row3 = ((DisplaysTotal<<2)*3)<<2;
Чему равны row1, row2, и row3 если DisplayыTotal=18 и если DisplayыTotal=24?
Чему равны row1, row2, и row3 если DisplayыTotal=18 и если DisplayыTotal=24?
1) возьмите ардуину
2) вставьте эти Ваши строки в setup с соответсвующими описаниями
3) добавьте нужное количество Serial.println
4) посмотрите сами чему равны эти грёбанные выражения!
5) прекратите прекратите выставлять себя идиотом
xDriver,
зря Вы так. Сейчас он опишет их как какие-нибудь байты, напечатает и начнёт Вам мозг выносить типа "а чё они не этому равны?". Пусть сам хоть чуток поработает. Скоро уж 2х2 будут спрашивать (этот. кстати, уже совсем недалеко).
Вопрос был о синтаксисе си. Хорош уже выпендриватся.
Спасибо. << значит умножить на 2 в степени того числа на которое происходит сдвиг? А >> Будет значить деление?
Вот зря Вы так!
Переносить "взрослые" понятия языка СИ в устройства для начинающих не совсем верно, мне так кажется.
Видел я программы на СИ где вся программа записана одной строкой (те кто не умеет сикать будут паскалить. )))
У меня очень простой тест на профпригодность выпускников "прикладная математика", прошу при мне написать алгоритм измерения объема жидкости в бочке лежащей на боку в зависимости от степени наполненности, если мы знаем её диаметр, высоту и степень этой наполненности (надо же как-то считать остатки солярки) ...
Современные "прикладники" не справляются с простейшей задачей )))
Писать программы для попила баблосов и для решения реальных народно хозяйственных задач совсем иное...
PS в разделе ПРОГРАММИРОВАНИЕ этого оператора кстати нет, как и вычисление корня
И еще вопрос. Это кусок из библиотеки DMD. Зачем сделали там побитовый сдвиг вместо умножения? Считается что сдвиг быстрее? Вроде же как если умножение происходит на число кратное двум, то равны, не?
xDriver,
зря Вы так. Сейчас он опишет их как какие-нибудь байты, напечатает и начнёт Вам мозг выносить типа "а чё они не этому равны?". Пусть сам хоть чуток поработает. Скоро уж 2х2 будут спрашивать (этот. кстати, уже совсем недалеко).
О кстати нашел тут... про вас написано))))
Вот зря Вы так!
Переносить "взрослые" понятия языка СИ в устройства для начинающих не совсем верно, мне так кажется.
Видел я программы на СИ где вся программа записана одной строкой (те кто не умеет сикать будут паскалить. )))
У меня очень простой тест на профпригодность выпускников "прикладная математика", прошу при мне написать алгоритм измерения объема жидкости в бочке лежащей на боку в зависимости от степени наполненности, если мы знаем её диаметр, высоту и степень этой наполненности (надо же как-то считать остатки солярки) ...
Современные "прикладники" не справляются с простейшей задачей )))
Писать программы для попила баблосов и для решения реальных народно хозяйственных задач совсем иное...
PS в разделе ПРОГРАММИРОВАНИЕ этого оператора кстати нет, как и вычисление корня
Что Вы бредите?
Сдвиг это не "взрослое понятие", а, млин, простейшая битовая операция.
На русско-говорящем сайте нет, но на оригинальном вот.
Без знания английского в программировании и электронике можно только полы мыть.
И еще вопрос. Это кусок из библиотеки DMD. Зачем сделали там побитовый сдвиг вместо умножения? Считается что сдвиг быстрее? Вроде же как если умножение происходит на число кратное двум, то равны, не?
"Не". Не равны.
Прочитайте Евгения, тут, в "прикрепленных темах". Назывется "Мрамор и штукатурка эффективности".
Нужно сперва читать, а ПОСЛЕ задавать вопросы.
Вас ругают исключительно за то, что нарушен разумный порядок.
Неуважительно - задавать очевидные вопросы, если Вы не 5-ти летний ребенок. Это показывает то, что Вам не нужен ответ, Вы ведь не стали даже Гугль ради ответа открывать.
и все-таки поясню.
При отключенной оптимизации разница огромна. Другое дело то, что в среде Ардуино оптимизация всегда включена и умножение на степень двойки компилятор сам переделает в сдвиг.
Библиотека должна давать хороший результат на разных настройках компилятора, поэтому автор применил сдвиги.
Вот зря Вы так!
Переносить "взрослые" понятия языка СИ в устройства для начинающих не совсем верно, мне так кажется.
Видел я программы на СИ где вся программа записана одной строкой (те кто не умеет сикать будут паскалить. )))
У меня очень простой тест на профпригодность выпускников "прикладная математика", прошу при мне написать алгоритм измерения объема жидкости в бочке лежащей на боку в зависимости от степени наполненности, если мы знаем её диаметр, высоту и степень этой наполненности (надо же как-то считать остатки солярки) ...
Современные "прикладники" не справляются с простейшей задачей )))
Писать программы для попила баблосов и для решения реальных народно хозяйственных задач совсем иное...
PS в разделе ПРОГРАММИРОВАНИЕ этого оператора кстати нет, как и вычисление корня
Что Вы бредите?
Сдвиг это не "взрослое понятие", а, млин, простейшая битовая операция.
На русско-говорящем сайте нет, но на оригинальном вот.
Без знания английского в программировании и электронике можно только полы мыть.
Клапауций запретил применять сдвиг, а он тут главный!
PS и даже мой любимый XOR
RE Без знания английского в программировании и электронике можно только полы мыть.
есть масса прекрасных книг по электронике на русском, для современной электроники, таки да, даташиты придётся читать
А В.Высоцкий уже по этому поводу высказался - "в общественном Парижском туалете есть надписи на русском языке"
"в общественном Парижском туалете есть надписи на русском языке"
This is the only way russian language fits exactly.
Sorry.
И еще вопрос. Это кусок из библиотеки DMD. Зачем сделали там побитовый сдвиг вместо умножения? Считается что сдвиг быстрее? Вроде же как если умножение происходит на число кратное двум, то равны, не?
"Не". Не равны.
Прочитайте Евгения, тут, в "прикрепленных темах". Назывется "Мрамор и штукатурка эффективности".
Нужно сперва читать, а ПОСЛЕ задавать вопросы.
Вас ругают исключительно за то, что нарушен разумный порядок.
Неуважительно - задавать очевидные вопросы, если Вы не 5-ти летний ребенок. Это показывает то, что Вам не нужен ответ, Вы ведь не стали даже Гугль ради ответа открывать.
Чувство собсвенной значимости в дверной проем входить не мешает? Ну не нравится что-то, ну проходи мимо. Нет, надо обязательно остановится, потявкать, самоутвердиться. Английский стоит выучить только ради того чтобы не лицизреть местное высокомерие))) Самоутвердился? Причем исключительно в своем воображении)))) За объяснения спасибо.
i_demidov, как бы вас не расcпирало, но если хотите заниматься электронникой, вам придеться выучить английский :)
i_demidov, как бы вас не раcСпирало, но если хотите заниматься электронНикой, вам придетЬся выучить английский :)
Прежде чем такие заявления делать, хорошо бы родной выучить.
да пох
да пох
верно, бурят! пох на руский языка!
Без знания английского в программировании и электронике можно только полы мыть.
Почему же так безапелляционно?
Меня в прошлом веке учили программировать и читать электронные схемы по учебникам на русском языке.
Для получения информации английский язык полезен, но для процесса программирования и ремонта электроники в нём нет необходимости.
i_demidov, как бы вас не раcСпирало, но если хотите заниматься электронНикой, вам придетЬся выучить английский :)
Прежде чем такие заявления делать, хорошо бы родной выучить.
До опечаток или неправильных фраз на данном форуме (он же не лингвистический) обычно не докапываются, так как они тут на каждом шагу.