Jawa / Говнокод #26055 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
/**
     * Four state boolean.
     */
    enum Bool {
        /** */
        FALSE,

        /** */
        TRUE,

        /** */
        READY,

        /** */
        DONE
    }

Запостил: MAKAKA MAKAKA, (Updated )

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

    • Какие операции определены над таким типом? Как будет выглядеть конъюнкция и дизъюнкция для такого булина?
      Ответить
      • через битовые операции же
        Bool.READY == Bool.FALSE & Bool.TRUE
        Ответить
          • Помню были 2 типа инверсий. Одна из них "инверсия Лукасевича", одна из них ~x = (x±1)%k. Но сейчас нихуя не могу нагуглить.
            Ответить
  • Uninitialized, true, false, weak true, weak false, unknown, weak unknown, high impedance как в vhdl.
    Ответить
    • Высокий импеданс логичен для железа
      А остальное зачем?
      Ответить
      • Слабые сигналы - эмуляция pull up/down резисторов (сильные сигналы их перебивают, если подключены на тот же провод). Uninitialized для тестов чтобы баги с кривым состоянием после сброса ловить. Unknown вроде тоже для тестов, чтобы показать что сейчас на проводе хуйня.
        Ответить
        • Кстати, у цифровых микросхем ещё и уровни 0 и 1 зависят от серии.

          Например, для ТТЛ российской серии К155 и зарубежной 74 напряжение на входе до 0,8 В считалось нулём, от 2,0 В — единицей, а между 0,8 В и 2,0 В располагалась зона с неопределённым состоянием. Если на вход подать напряжение в интервале 0,8..2,0 В, то на выходе может быть ноль, может единица, а может и вообще аналоговый сигнал.

          У более поздних серий (с диодами Шоттки: 74F, 74ALS, K1531, K1533) неопределённую зону сузили. Они напряжение выше 1,5 В считают единицей, а ниже 1,5 В — нулём.

          На выходе же ТТЛ-микросхемы могут выдавать в качестве единицы 2,5 В вместо 5 В, т. е. половину напряжения питания.

          Высокий импеданс на входе в ТТЛ считается единицей.

          У КМОП-микросхем (74HC, K176) всё более чётко: на выходе нулю и единице соответствуют ноль и напряжение питания соответственно, на входе же нулём считаются напряжения до 0,05 В, а единицей — выше (Uпит - 0,05В). Всё, что между этими границами, — неопределённая зона.

          Высокий импеданс на входе в КМОП считается нулём.

          А есть ещё ЭСЛ. Их использовали, когда КМОП ещё не поддерживали высокую частоту переключения. Сейчас ЭСЛ почти не используют, потому что они потребляют много лепестричества даже на холостом ходу. У ЭСЛ тоже была неопределённая зона, причём не совпадающая ни с ТТЛ, ни с КМОП.

          Теперь представь себе, как работает схема, в которой вперемешку стоят микросхемы ТТЛ и КМОП. Не хочешь UB — используй триггер Шмитта.
          Ответить
    • Кокое же говно эти ваши HDL-и, попались тут сорцы на AHDL, вроде слова все знакомые и синтаксис не сложный, а что происходит — нихуя не понятно...
      Ответить
      • Слушай, по каким районам ты ходишь, что тебе попадаются сорцы «AHDL». Я тут хожу, максимум «PHP» нахожу.
        Ответить
  • А если перевести на PHP, то можно возвращать истину, ложь или, в случае неудачного исполнения, строку - сообщение об ошибке.

    А в C# можно использовать "bool?".
    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8