- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
/**
* Four state boolean.
*/
enum Bool {
/** */
FALSE,
/** */
TRUE,
/** */
READY,
/** */
DONE
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
/**
* Four state boolean.
*/
enum Bool {
/** */
FALSE,
/** */
TRUE,
/** */
READY,
/** */
DONE
}
MAKAKA 27.11.2019 19:26 # 0
XYPO3BO3 27.11.2019 19:38 # 0
Her 27.11.2019 20:15 # 0
Bool.READY == Bool.FALSE & Bool.TRUE
guestinxo 27.11.2019 20:42 # 0
Rooster 27.11.2019 20:49 # 0
guestinxo 27.11.2019 21:17 # 0
XYPO3BO3 27.11.2019 22:11 # 0
При попытке расширить двоичную логику создали много всякой разной питушни:
1. Нечёткую логику.
2. Многозначную логику (в частности, троичную).
Вот для старта поиска:
https://ru.wikipedia.org/wiki/Неклассическая_логика
bormand 28.11.2019 11:14 # +2
guest8 28.11.2019 16:07 # −999
bormand 28.11.2019 16:45 # 0
XYPO3BO3 28.11.2019 17:49 # +2
Например, для ТТЛ российской серии К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 — используй триггер Шмитта.
Rooster 28.11.2019 22:41 # 0
guestinxo 28.11.2019 22:47 # +1
XYPO3BO3 29.11.2019 00:14 # 0
3oJIoTou_xyu 28.11.2019 12:20 # +2
XYPO3BO3 28.11.2019 15:26 # +2
Круто. 2 — это не истина, но и не ложь.
3oJIoTou_xyu 28.11.2019 15:29 # +1
3oJIoTou_xyu 28.11.2019 15:45 # 0
gost 28.11.2019 15:39 # +1
guest8 28.11.2019 17:04 # −999
Steve_Brown 29.11.2019 11:22 # 0
А в C# можно использовать "bool?".
XYPO3BO3 29.11.2019 14:34 # 0
booratihno 30.11.2019 01:19 # 0