1. Pascal / Говнокод #7783

    +101

    1. 1
    2. 2
    3. 3
    i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
    i := i shr 1; // после этой строчки i становится равно 2147483644
    i := (-7) shr 1; // после этой строчки i становится равно 4

    Delphi7 такой Delphi7...

    http://www.gamedev.ru/code/forum/?id=138759&page=25#m367
    Тарас любит дельфи.

    Запостил: CPPGovno, 06 Сентября 2011

    Комментарии (150) RSS

    • А я думал, только в С++ из-за сложного языка и множества реализаций стандарта есть UB, а тут...
      Ответить
    • ну это же тебе не ассемблер
      Ответить
    • Почему ты не запостил код вывода спрайта с поворотом и масштабом, который тоже есть в этой теме?
      Ответить
      • Мне он не приглянулся, но ты можешь запостить.
        Ответить
      • Почему ты не использовал для поворота+масштаба спрайтов: 2D BitBlt или вывод 2х 3D треугольников? (последнее сейчас есть всегда). Зачем изобретать свой кривой велосипед?
        Ответить
        • BitBlt для поворота и масштаба?!
          3D треугольники у меня не пойдут, и вообще софтрендер всегда самый стабильный и надёжный.
          Ответить
          • >софтрендер всегда самый стабильный и надёжный
            Особенно стабильна у него низкая скорость работы, качество и филрейт.
            Ответить
            • Для простой графики скорость работы более чем достаточна, первоквака на первопнях, говорят, шла.
              Задач, где нужна именно простая графика - дофига.
              Ответить
              • Видеокарта есть на борту сейчас у всех. Зачем изобретать свой кривой тормозящий не качественный велосипед?
                Уже сейчас многие расчёты делают на типичной домашней видеокарте и распараллеливают на многоядерные системы. Без шейдеров видяху встретить без шансов. Когда вы будете учитывать наличие видяхи у пользователей, давая им приемлемое качество картинки и разумной скорости при низкой загрузке ЦП?
                Ответить
                • Для простой графики он не будет тормозить. Видеокарта есть не у всех. Да, я пишу не только игры и гарантия беспроблемного запуска важнее красивой картинки.
                  Ответить
                  • >Для простой графики он не будет тормозить.
                    Это серьёзный повод писать свой квадратноколёсый велик.

                    >я пишу не только игры
                    Что например?

                    >Видеокарта есть не у всех.
                    Да, согласен. У бомжей, например. Электричество в канализацию не провели и комп не поставить.
                    Ответить
                    • > Это серьёзный повод писать свой квадратноколёсый велик.

                      Ты так говоришь, будто вывести треугольник дико сложно.

                      > Что например?

                      На работе программки.

                      > Да, согласен. У бомжей, например. Электричество в канализацию не провели и комп не поставить.

                      Это считать сливом?
                      Ответить
                      • >На работе программки.
                        У вас на работе нет видеокарты? Это считать сливом? Что-за бомж-организация?

                        У меня на работе топовая видяха стоит. 8 ядер. 16 гб памяти.
                        Ответить
                        • Кроме нас бывают заказчики.
                          Только не надо ляля, что типа у всех на работах топовые компы.
                          Ответить
                          • >На работе программки.
                            Можно конкретно услышать про то, что вы делаете? Что эти программки делают?
                            Ответить
                            • Так, мелкие расчёты, ничего интересного.
                              Но топовые компы только в модных офисах, а на производстве и 400 мгц неплохо.
                              Ответить
                              • Хватит кормить его. Он не лопнет.
                                Ответить
                              • >ничего интересного
                                Зачем заниматься не интересным делом, тем более что за него вам совершенно не платят?
                                Ответить
                                • Ну я рад, если ты живёшь в стране, где на работе тебе дают исключительно интересные весёлые задания, а не только унылые производственные программы, да ещё и платят за них кучу бабла.
                                  Ответить
                                  • >Ну я рад, если ты живёшь в стране

                                    Ну страна тут не причём, но я тоже рад. (:


                                    Но все же вы могли бы найти какую-нибудь более удачную комбинации, где хотя бы оплата была высока.
                                    Ответить
                                    • У меня нет такой фобии к софтрендеру, чтобы из-за этого искать другую работу. Но факт его нужности имеет место быть.
                                      Ответить
                                      • >У меня нет такой фобии к софтрендеру, чтобы из-за этого искать другую работу
                                        Вы так говорите, будто каждый день пишите новый софтрендер на работе...
                                        Ответить
                                        • Это ты так говоришь, будто один раз написать софтрендер - повод сменить работу.
                                          Ответить
                                          • Один раз -
                                            Не пидарас?
                                            Ответить
                                            • У вас софтрендер вызывает такие ассоциации? А на что ещё вы жалуетесь?
                                              Вот, читай: http://www.gamedev.ru/code/forum/?id=152068&page=5#m65
                                              Все эти модные опенглы и директы годятся только для игрушек, в которых пофигу, если что-то заглючило.
                                              Ответить
                                              • Нечего писать свой кривой софтрендер, который уже написан сотню раз. Возьмите готовый, много раз проверенный и прямой.
                                                Ответить
                                                • А в готовом разбираться - не больше ли времени отнимет? Ты ещё скажи - "нечего писать свой кривой оператор присваивания, возьми готовый."
                                                  Блин, ну НЕТ в софтрендере ничего сложного!
                                                  Просто для тебя треугольник нарисовать - это что-то непосильное, вот и пишешь фигню.
                                                  Ответить
                                                  • Велосипедист со стажем? Я догадывался.
                                                    Ответить
                                                    • Да, только велосипедист с ОГРОМНЫМ стажем способен решить такую сложную и многогранную задачу, как написать оператор присваивания.
                                                      Если ты не умеешь писать софтрендеры, то не надо думать, что тут у всех такой же маленький опыт.
                                                      Ответить
                                                      • >ты не умеешь писать софтрендеры
                                                        Ошибка.

                                                        Надеюсь вы не считаете написание софтрендера чем-то выдающимся?
                                                        Довольно простенькое дельце. Никакие знания, кроме школьных, для этого не нужны. Только вот время на него, кроме как ради развлечения - тратить не нужно. Займитесь лучше чем то действительно сложным, интересным и оплачиваемым. Хватит работать за еду.
                                                        Ответить
                                                        • > Только вот время на него, кроме как ради развлечения - тратить не нужно.

                                                          КАКОЕ ВРЕМЯ?
                                                          Ты не умеешь писать софтрендеры, если считаешь, что на них надо дохрена времени.
                                                          Ответить
                                                          • >КАКОЕ ВРЕМЯ?
                                                            Не трать ни минуты на пустое.
                                                            Софтрендеры - простейшая задача. Мы уже это обсудили, она не может занять много времени. Но каждая минута дорога.
                                                            Ответить
                                                            • > Но каждая минута дорога.

                                                              Не то оптимизировать пытаешься.
                                                              Если никакие преимущества опенгла (типа скорость и навороты картинки) мне нахрен не нужны, то зачем я должен использовать опенгл? Только для того, чтобы не дай бог, не навелосипедить? Тогда зачем вообще быть программистом - все программы давно написаны, мы все тупо велосипедим.
                                                              Ответить
                                                              • >Если никакие преимущества опенгла (типа скорость и навороты картинки) мне нахрен не нужны, то зачем я должен использовать опенгл?

                                                                Но они и не помешают если вопрос ставить таким образом.


                                                                >зачем я должен использовать опенгл?

                                                                Мы же уже решили, что опенгл вам не подходит и нужен софтрендер. Зачем опенгл снова вспоминать?

                                                                Просто возьмите готовое решение, а не пишите бесполезный код.


                                                                >Тогда зачем вообще быть программистом - все программы давно написаны

                                                                Написаны элементы программ. Их нужно просто собрать в единую конструкцию и настроить.

                                                                Умение писать велосипеды не ценится ни одним работодателем. Вот почему вы до сих пор пользуетесь компом в 600МГц. (Читал ваше признание на геймдев.ру).
                                                                Ответить
                                                            • > каждая минута дорога
                                                              Иногда "Лучше день потерять, а потом за пять минут долететь" (с)
                                                              Ответить
                                                              • >"Лучше день потерять, а потом за пять минут долететь" (с)

                                                                Это как раз относится к использованию готовых средств, а ни к написанию своих.
                                                                День разбираешься со средством, за 5 минут пишешь работающую программу.
                                                                А не как это бывает у велосипедистов:
                                                                Месяц пишешь велосипед. Полмесяца пишешь программу, тк велосипед не удобный и 4 месяца отлаживаешь, потому что велосипед кривой.
                                                                Ответить
                                                  • >А в готовом разбираться - не больше ли времени отнимет?

                                                    Это говорит о том, что вы не знаете предметную область.
                                                    Много времени отнимает разбирательство с инструментом, только если нормальные инструменты вы не знаете или не умеете читать чужой код\иностранную документацию.

                                                    Если не умете читать код и поддерживать чужие продукты, то такой кодер, кроме как для написания простых программок никуда не годится.
                                                    Ответить
                                                    • В целом я с вами согласен. Гораздо более прагматично использовать то, что уже сделали до тебя: отлаженные, проверенные тысячи раз и вылизанные до мелочей библиотеки.

                                                      С другой стороны, если у @TarasB есть в наличии собственный движок, уже написанный, отлаженный и пригодный к использованию, почему бы не использовать его? Не нужно тратить время на изучение, написание тикетов и прочие лишние телодвижения. К тому же, он наверняка легче и включает только то, что действительно необходимо именно Тарасу.
                                                      Программисты - народ упрямый, вряд ли вам удастся переубедить Тараса. Зачем тратить время? :)
                                                      Ответить
                                                      • >Программисты - народ упрямый

                                                        Не. Есть много умных людей, которые могут поменять свою точку зрения, если она не верна.
                                                        Ответить
                                                      • Я спорю с Тарасом, не чтобы его переубедить, а в надежде, что он докажет свою точку зрения и исправит мою (хотя бы частично). :)
                                                        Ответить
                                                      • >К тому же, он наверняка легче и включает только то, что действительно необходимо именно Тарасу.

                                                        Практика показывает, что при дальнейшей поддержке, модификации и разрастании продукта, в используемый в нем велосипед приходится добавлять новый функционал, который по прежнему есть в готовом решении, которое мы ранее отбросили, тк в нем есть "лишние", на момент начала проекта, возможности.

                                                        Так, каждый раз дописываются новые возможности и новые ошибки в проект.

                                                        Готовые решения уже протестированы, а к своему велосипеду приходится каждый раз дописывать все новые и новые Unit-тесты. Это дополнительная трата времени при разработке проекта.

                                                        А ведь часто в проекте не один велосипед, а много. В результате затраты времени ещё больше увеличиваются на создание юнит-тестов, поиск ошибок и постоянное допиливание своего велосипеда.
                                                        Ответить
                                              • Софтрендеры писал ещё "ваш дед", и вы туда же. Тогда люди понимали лучше вашего в оптимизации на слабых то компах. Нужно пользоваться опытом поколений и не тратить своё время на пустяки.
                                                Ответить
                                              • А главное не нужно тратить время заказчика на написание великов и их отладку, а то Вам будут продолжать платить копейки.
                                                Ответить
                  • У меня на сервере нет видеокарты физически, только вот я сомневаюсь в том, что там нужно обсчитывать и выводить графику.
                    Ответить
                    • Блин, задачи бывают разные и там, где требуется гарантия одинаковой картинки и безглючность, нужно писать софтрендер, потому что видеокарты бывают разные, часто глючат на простейших вещах, а софтрендер пишется быстро. Геймдевкам этого не понять, минусаторы, убейтесь об стену.
                      Ответить
                      • Таки видеокарты будут делать разную картинку?
                        Ответить
                        • Ты вчера родился? Хочешь, найду тему, как Интел-945 неправильно рисовал сраные цветные треугольнички?
                          Кстати, убейся со своими минусами.
                          Ответить
                          • В данном случае совершенно не оправдано создание велосипеда, который занимается тем, чем заниматься явно не следует. Уже давным-давно есть аппаратные решения со своими стандартами. Никакие мифические единичные багослучаи не стоят половых извращений и неоправданных тормозов.

                            С какими моими минусами?
                            Ответить
                            • Эх, физики в нашем НИИ давно пытаются использовать многопроцессорные видеокарты для параллельных вычислений. Вроде бы у них даже получается.
                              Ответить
                              • >физики в нашем НИИ давно

                                Это получается во многих промышленных играх или академических\промышленных исследованиях, притом даже на давно устаревших видеокартах. Вам то этого, не знать TarasB, столько времени проводите на геймдев.ру...
                                Ответить
                            • > Уже давным-давно есть аппаратные решения со своими стандартами.

                              Стандарт не соблюдаются.

                              > неоправданных тормозов.

                              Какие тормоза, софтрендер даже на первопнях рисовал сцену в реальном времени (первоквака).

                              > В данном случае совершенно не оправдано создание велосипеда

                              У вас велосипедофобия? Тогда не пишите программ вообще.
                              Ответить
                              • > Стандарт не соблюдаются.

                                Это не даёт приоритета софтовому рендереру, когда можно использовать аппаратное решение.

                                > рисовал сцену в реальном времени (первоквака)

                                Вне всякого сомнения. Фотореализм нужен школьникам с крайзисами, а для всего остального как раз подойдёт неспешный почти-спрайтовый движочек.

                                > Тогда не пишите программ вообще.

                                А я и не пишу.
                                Ответить
                                • > А я и не пишу.

                                  Я хотел было ответить на остальную часть твоего поста, но после этого я могу только сказать "идите на хуй".
                                  Ответить
                                  • >"идите на хуй"
                                    Печально. А я только что рассказывал товарищу выше, что TarasB может быть умным программистом...
                                    Ответить
                                    • Не, ну если он программ не пишет, то хренли он меня учит?
                                      Движок кваки у него "неспешный", ага.
                                      Ответить
                                      • Ну здесь не все так очевидно. Может он 30 лет и 3 года писал программы, а месяц назад его перевели на должность начальника отдела или стал директором.

                                        Если так, то у него есть все основания учить даже меня.
                                        Ответить
                                  • > но после этого я могу только сказать "идите на хуй"

                                    И ви таки не болейте.
                                    Ответить
                              • >софтрендер даже на первопнях рисовал сцену в реальном времени (первоквака).

                                Ага, только графика была далеко не чита современным играм.


                                >У вас велосипедофобия?

                                Да, особенно не люблю кривых., полученных в наследство на поддержку от кривописателей, таких как вы, сударь.


                                >Тогда не пишите программ вообще.

                                Нормальный процесс написания программ не как не связан с велосипедостроением.


                                Под велосипедом я понимаю клон некого средства, которое уже есть, при этом оригинал обладает схожими или более хорошими характеристиками.

                                Но велосипедом не является средство, оригинал которого уже есть даже с гораздо более хорошими характеристиками, но внедрять в проект его нельзя или не желательно по каким то причинам.

                                Писать велосипеды (в соответствии с приведенном выше понятии) весьма глупо и иррационально.

                                Ещё глупее писать свой кривой велосипед, кои традиционно и выходят у горе-изобретателей.

                                Цель настоящего инженера-программиста решить задачу качественно (поддерживаемый код с минимумом ошибок) и с минимальной затратой ресурсов(время и денежных средств).

                                Дабы было дешевле с точки зрения времени нужно использовать готовые решения, чтобы не писать своё и не тратить время.

                                Дабы было меньше ошибок и проект было легче поддерживать, нужно использовать проверенное временем и многими людей - готовое решение.

                                Если решение использовалось многими людьми - оно вылизано с точки зрения удобства использования, а значит дополнительная экономия времени.

                                Если нет ошибок, тк мы использовали проверенное решение, то опять же меньше времени тратим на отладку - экономия времени.
                                _______
                                Цель инженера-программиста достигнута.
                                Ответить
                                • Если постоянно успешно достигать эту цель, то зарплата будет периодически расти.
                                  Ответить
                                • > Ага, только графика была далеко не чита современным играм.

                                  А если мне эффекты не нужны?

                                  > Да, особенно не люблю кривых., полученных в наследство на поддержку от кривописателей, таких как вы, сударь.

                                  Процедура вывода треугольника занимает около 100 строк, в ней нечего поддерживать.

                                  > Дабы было меньше ошибок и проект было легче поддерживать, нужно использовать проверенное временем и многими людей - готовое решение.

                                  А вот нифига, не факт. В готовом решении могуть быть свои ограничения.
                                  Ответить
                                  • >В готовом решении могуть быть свои ограничения.

                                    На то и нужно быть опытным программистом и знать предметную область, чтобы правильно подобрать готовое решение.
                                    Ответить
                                    • Ммм...так бы и сказали - Тарас, я держу вас за дурака.
                                      Че вы тут флудите?
                                      Ответить
                                      • Если вы считаете, что я не уважаю Тараса, то это не так, иначе я бы с ним не спорил.

                                        >Тарас, я держу вас за дурака.
                                        Повторяю, это исключительно ваше мнение.
                                        Ответить
                                        • >Печально. А я только что рассказывал товарищу выше, что TarasB может быть умным программистом...
                                          Ответить
                                      • SmackMyBitchUp
                                        >Че вы тут флудите?
                                        Оффтопите и флудите здесь Вы. Я лишь устроил конструктивный спор, притом не с вами.

                                        >Че вы тут флудите?
                                        Это не запрещено правилами нашего уютненького форума (:
                                        Ответить
                                    • Пока ты будешь ковыряться в готовых решениях, а потом узнавать через месяц, что новая фича в готовое решение не влазит, профессионал быстренько напишет свой рендер и получит деньги.
                                      Ответить
                                      • Если какой то сверхсложной фичи нет среди сотен готовых решений различной сложности, то профессионал ничего быстренько не напишет и ничего не получит.
                                        Ответить
                                        • Ну вот одна простая фича есть в движке ААА, другая простая фича есть в движке БББ.
                                          Вот нафиг оно надо, разбираться в движках, думать, как их соединить, если проще, как говорится, переписать с нуля?
                                          Ответить
                                          • Раз этот человек действительно хороший программист и может создать своё средство с нуля и полностью его оттестировать юнит-тестами, то ему не составит труда разобраться в чужом коде и самому дописать эту очень простую фичу из БББ в средство AAA.

                                            Тем более умение поддерживать чужой код - одна из отличительных черт настоящего программиста, а не кодера.
                                            Ответить
                                            • Не буду оригинален, дам только одну ссылку

                                              http://lurkmore.ru/Умение_разбираться_в_чужом_коде
                                              Ответить
                                              • Не буду оригинален, просто повторюсь:
                                                Если в средстве, которое выбрали для использования в проекте, код - полное говно, то средство не верно выбрали. Сами виноваты.

                                                Более того, можно написать велосипед с таким же говнокодом. Жалко должно быть людей, которые его станут поддерживать после вас.

                                                Представляю, увольняется любой работник и каждый раз за ним вновь пришедший работник полностью с нуля переписывает велосипед предыдущего, тк он не понятен. (:

                                                Проект вообще никогда не завершится, тогда. (:
                                                Ответить
                                                • Сначала ищешь средство, которое проще всего допиливать, потом замечаешь, что после допилов от начального варианта ничего не осталось, короче, вернулись к исходному варианту - писать всё самому.

                                                  Короче, я тут нечаянно пришёл к тому, что надо вообще всё делать самому, но это не так - просто иногда, в простых случаях, велосипед оправдан. Софтрендер - это простой случай.
                                                  Ответить
                                                  • Ещё на этапе проектирования проекта нужно найти то средство, которое не понадобится допиливать или которое крайне легко допиливается. Иначе это просто ошибка проектирования.
                                                    Ответить
                                                    • И зачастую это средство - ВЕЛОСИПЕД
                                                      Ответить
                                                      • >ВЕЛОСИПЕД

                                                        Я все же за автомобиль.
                                                        Мне кажется, вам не хватает опыта. Предлагаю закончить спор, тк больше я не слышу аргументов.

                                                        Большое спасибо.
                                                        Ответить
                                                        • > Мне кажется, вам не хватает опыта.

                                                          Первый признак нехватки опыта - это бездумное следование правилам и непонимание того, что из них бывают исключения. Например, "нельзя использовать ГОТО", "нельзя изобретать велосипеды" и так далее. Так как тут народ взрослый, то тут можно, не стесняясь, говорить, что иногда таки можно.
                                                          Ответить
                                                          • >бездумное следование правилам и непонимание того, что из них бывают исключения.

                                                            С чего вы взяли, что я всегда следую правилам? Есть такие ситуации, где этого не достаточно. Я говорил про часто появляющиеся в разработке случаи. Конечно есть исключения. Только вот когда вместо применения правила всегда используют исключение из него, то в этот момент все проекты начинают попахивать и плохо кончать.
                                                            Ответить
                                                            • Примитивный софтрендер - не тот случай, где имеет смысл искать готовое решение, так как пишется он быстро и просто.
                                                              Ответить
                                                  • >иногда, в простых случаях, велосипед оправдан

                                                    Ну если вы не знаете предметную область достаточно хорошо (не знаете хороших средств), то я с вами согласен. Разбираться в предметной области будет гораздо сложнее, чем написать свое небольшое говнецо. Хотя это не отменяет затрату времени на его тестирование, но если оно действительно не большое, то это не должно быть слишком долго.
                                                    Ответить
                                                    • в принципе можно развить идею дальше. не зачем вообще разрабатывать новое ПО, т.к. уже есть соотв. аналоги - их только нужно найти:)

                                                      про велосипеды же - видел как случаи оправданного использования велосипедов, так и неоправданного.
                                                      хотя, все случаи оправданного использования подпадают под "по каким-то причинам использовать нельзя" или "в данном конкретном случае является существенно более эффективным, но менее универсальным". последнее вообще велосипед?
                                                      Ответить
                                                      • еще был случай - выбрали готовое решение (разработка своего была очевидно слишком затратна), на тот момент казавшееся хорошим, однако в дальнейшем оказалось, что функционал недостаточен, есть косяки, компания-разработчик новых версий и багофиксов не делает. Самим поправить нереально - тупо исходников нет. Другие аналоги также не обладают требуемым функционалом (задача была довольно специфичной). Перепробовав штук 5 аналогов в конечном счете реализовали свой.
                                                        Однако в процессе ознакомления с готовыми решениями был получен опыт, который позволил четко поставить задачу и решить ее. без этого свое решение оказалось бы типичным убогим велосипедом.
                                                        Ответить
                                                        • >на тот момент казавшееся хорошим, однако в дальнейшем оказалось, что функционал недостаточен

                                                          Горе-проектировщик. Что сказать ещё...
                                                          Ответить
                                                          • опыта ж не было:)
                                                            а проектирование да, было никакое, а пнуть тогда не мог - только начал работать
                                                            Ответить
                                                          • А нормальное проектирование не помогло б - на момент принятия решения действительно было оптимально - или это или сам пиши. прочие аналоги только через год-два появились.
                                                            Ну требования к ПО изменились и все - что сделать? не делать, бья пяткой в грудь, что это не было обговорено (и конечно не предусмотрено) - так доплачивают же. начальство пинает и вперед. Сами скорее всего с таким сталкивались, если за живые деньги софт писали.
                                                            Ответить
                                                        • >Однако в процессе ознакомления с готовыми решениями был получен опыт, который позволил четко поставить задачу и решить ее.

                                                          И ещё одна польза есть от готовых решений. Использовать готовое решение как временную затычку ещё не написанного функционала при ограничении на время выпуска первой версии продукта.
                                                          Ответить
                                                          • по сути мы так и сделали, жаль только, что версия такая была не одна....
                                                            Ответить
                                                      • >видел как случаи оправданного использования велосипедов

                                                        Тогда это не велосипед. Я уже говорил.
                                                        Ответить
                                                        • Заебись, если велосипед оправдан, то это не велосипед, хотя велосипед.
                                                          Велосипед есть велосипед независимо от того, насколько оправдана его разработка. А вот спор об необходимости написания именно велосипеда - это уже другая тема.
                                                          Ответить
                                                          • >велосипед оправдан, то это не велосипед

                                                            Да. "Велосипед" оправдан обычно только в том случае, если нет других его аналогов, подходящих для проекта. Если аналогов других у данного средства нет, то и назвать это велосипедом нельзя, тк ты не изобретаешь его повторно. Этого средства раньше ведь не было.
                                                            Ответить
                                                      • >не зачем вообще разрабатывать новое ПО, т.к. уже есть соотв. аналоги

                                                        В идеальном мире - да, только аналоги не всегда есть, подходящие для разрабатываемого проекта. К сожалению...
                                                        Ответить
                                                        • нет, к счастью - а то кушать было бы нечего:)
                                                          Ответить
                                                  • показать все, что скрытоvanished
                                                    Ответить
                  • >гарантия беспроблемного запуска
                    опенгл без шадеров последней версии беспроблемно запускается практически на любой платформе уже как лет десять; там и софтверная реализация есть, если карта не поддерживает вдруг.

                    сам себе злой.
                    Ответить
                • > Видеокарта есть на борту сейчас у всех
                  школьник, которому мама купила высокопроизводительную платформу класса «Писюк» детектед

                  > не качественный
                  унд конфирмед.
                  Ответить
                  • Батхерт не лечится. Мне жаль вас огорчать (:
                    Ответить
                    • а уж как мне Вас жаль...
                      :-P
                      Ответить
                      • А чего меня жалеть? Успешен, хорошо оплачиваемая работа, тут ещё некоторые продвижения намечаются. (:

                        Или вы хотите, чтобы я вам тоже посочувствовал?
                        Ответить
                    • Перестань смайлофапать, у меня олерожафобия
                      Ответить
                      • А это лечиться. Даже без обращения к врачу.
                        Просто почаще заходите в тред и привыкайте к смайлоатмосфере.
                        На худой конец можете уйти с говнокода, но этот вариант я не рекомендую.
                        Ответить
                        • > А это лечиться

                          Капча 6667, почти
                          Ответить
                        • Уж лучше вы свалите на какой-нить конец. Мне ваши альтернативные решение не по душе.
                          Ответить
                          • Тогда просто обратитесь к врачу, который лечит фобии. (: Другого выхода я не вижу.
                            Ответить
                            • У тебя вот фобия к софтрендеру, ещё у тебя софтрендер ассоциируется с гомосексуализмом, налицо латентная девиация.
                              Ответить
                              • >софтрендер ассоциируется с гомосексуализмом
                                Я просто применил идиоматическое выражение.

                                >У тебя вот фобия к софтрендеру
                                Не. У меня фобия к квадратноколёсым велосипедам.
                                Ответить
          • >BitBlt для поворота и масштаба?!
            DD7 Blt хотел сказать.
            Ответить
    • забавно. среда использует знаковый сдвиг, но компилирует в беззнаковый.
      в строке 3 сдвиг происходит средствами среды, а в компилированном коде готовый результат.
      Ответить
      • Различия в вычислениях выражений на этапе компиляции (когда выражения состоят из одних констант и их можно посчитать заранее) и на этапе выполнения (когда выражения содержат переменные и надо генерировать вычисляющий их код) тянутся ещё со времён Турбо Паскаля. В частности, с разной точностью вычисляются выражения в 48-битном паскалевском типе real с плавающей запятой. А про сдвиг я не знал. Надо будет проверить в разных версиях.

        Можно заставить некоторые из этих выражений вычисляться одинаково в неоптимизированном коде, переписав модуль System.
        Ответить
    • Предчувствую, что кто-то не вкурил мануал (и это не авторы Delphi). -7 какого типа? А что даст integer(-7) shr 1 (или как там приведение типов?)?
      Ответить
      • integer(-7) shr 1 = -4;
        i:=-7;
        i:=integer(i) shr 1 = 2147483644;
        Ответить
      • -7 имеет тип integer
        integer(-7) shr 1 даст -4
        Ответить
        • Все фигня.
          const a = -7;
          i = -7;
          i shr 1 = 2147483644
          a shr 1 = -4
          Ответить
          • а shr 1 вычисляется на этапе компиляции, потому что a — нетипизированная константа, а следовательно, подставляется как макрос.

            i shr 1 приводит к генерации кода, сдвигающего значение i. Прикол в том, что код, вычисляющий значения во время компиляции, и генерируемый код не совпадают.
            Ответить
            • Ну дак о чем и речь
              Ответить
              • Самое забавное — это кросс-компиляторы. У них код для вычисления констант и генерируемый вообще будут выполняться на разных процессорах. Там можно и пострашнее примеры найти.
                Ответить
        • Именно 32-битное целое? А не целое неограниченной разрядности (как в Go) или хотя бы максимально используемой в языке (longint?)? Я имею в виду литерал, а не переменную.

          Что об этом пишут в спецификации?
          Ответить
          • Целых неограниченной разрядности стандартных нет.
            Будет, очевидно, целое с разрядностью платформы, то есть 32 бита.
            Ответить
            • В FreePascal (-7) shr 1 равно 9223372036854775804 (на 32-битном Линуксе).

              В C, C++ и некоторых других языках константы разного типа отличаются и вычисления с ними идут как с целыми этого типа. В Go явно сказано, что все целые константы и константные вычисления идут с неограниченной длиной, а обрезаются уже потом. И это правильно.
              Ответить
              • Go - это язык более высокого уровня, он тут не в тему.
                Ответить
              • 9223372036854775804 — это 64-битное число. Ещё в Турбо Паскале был тип 64-битный Comp, вычисляющийся на математическом сопроцессоре, как вещественные типы.
                Ответить
    • Java:
      int j = -7;
      j=j >> 1; //-4

      -7 >> 1 = -4
      Ответить
      • В ещё есть операция >>>, которая выполняет беззнаковый сдвиг. Соответственно, >> - знаковый сдвиг (на правах дополнения).
        Ответить
        • Запостил лишь с той целью, чтобы показать, что в ява пока не напутали в этом плане ничего :D
          Ответить
          • При проектировании над этим долго голову ломали, потому и не напутали.
            Ответить
            • Дак без проектирования вообще никуда. Решил попробовать без него - ну, в принципе какая-никакая ИС "Библиотека" получилась. Некоторые классы очень даже расширяемы(не от слова "ширяться"), а в целом мертво, скучно, нудно и придется переписывать, чтобы получить гибкость.
              Ответить
          • В Java, как и в некоторых других C-подобных языках, константы имеют тип. 7, 7L, 7.0, 7.0f и '\007' — разные.
            Ответить
            • Кстати, да:
              printf("%d\n", -7L >> 1);
              printf("%d\n", -7UL >> 1);
              Первая строка показывает -4, а вторая 2147483644.
              Ответить
              • А компилятор вообще пропускает -7UL? Оно ж в диапазон не вписывается.
                Ответить
                • Ну, он воспринимает -7 UL как 4294967289
                  Ответить
                • Си, в отличие от Паскаля, границы диапазонов пофиг. А дополнение Bounds Checking считается костылём и отвергается тру-сишниками.

                  В каком-то говнокоде вроде обсуждалось переполнение целых?
                  Ответить
                  • Трушные сишники рады любому новому способу выстрелить себе в ногу.
                    Ответить
                    • Думается мне, что ноги давно кончились и яйца кончились, и все уже, блять, кончилось, а они все стреляли и стреляли.
                      Ответить
      • Так это все языки для знаковых типов делают знаковый сдвиг. Только ботланд пошёл иным путём.
        В новых версиях этот прикол "исправили" - теперь отладчик тоже показывает 2 миллиарда. Короче, по-прежнему для знаковых чисел делается shr бля.
        Ответить
        • Вот уморы млять
          Ответить
        • В С и С++ implementation defined, например. А у ботланда ты в документацию смотрел? Там написано как должно быть? Если нет, то ты пытаешься заставить работать UB.
          Ответить
          • Если в документации говна написано что оно воняет, то оно не перестанет быть вонючим говном.
            Ответить
        • можно написать i div 2. в скомпилированном без оптимизации коде будет sar eax, 1
          Ответить
          • Авотхуй
            Будет сравнение на отрицательность, прибавление единицы в случае отрицательности, и только потом сар. И всё это для того, чтобы совпасть с блядским делением по-интеловски.
            Ответить
            • что еще остается?(
              ну тогда пишите на асме:)
              ибо (i and $80000000) or (i shr 1) совсем уж уродливо
              Ответить
    • Delphi -7
      Ответить
      • Вообще не понимаю, почему создатели дельфи не догадались поставить знак минуса перед семеркой.
        Ответить
    • Тема поднималась здесь
      http://62.166.198.202/view.php?id=17710
      Ответить

    Добавить комментарий