Сообщение от
Dimensy
Я же вам приводил картинку с примером.
А так, у нас есть некоторая целочисленная переменная А которая отвечает за то какой из насосов будет работать. Если хотим, чтобы работал первый насос, в бит №0 этой переменной записываем единичку, не хотим чтобы работал - пишем нолик. То же самое со вторым насосом, но там пишем 1 или 0 в бит №1 этой переменной. Далее, у нас есть целочисленная переменная В, которая отвечает за аварии. Если первый насос находится в аварии, то пишем в бит №0 нолик, иначе пишем 1. Тоже самое с аварией второго насоса, бит №1, 0 - авария, 1 - нет аварии. Дальше мы выполняем логическую операцию И с переменными А и В, пусть это будет С. Логические операции с целочисленными переменными выполняются побитово, т.е. бит №0 переменной А перемножится с битом №0 переменной В, бит №1 переменной А с битом №1 переменной В и т.д. В результате мы получим следующий результат: допустим насос 1 должен работать (бит №0 переменной А = 1), но он находится в аварии (бит №0 переменной В = 0), тогда в переменной С бит №0 будет равен 0, т.е. в итоге насос нельзя запускать. Насос 2 тоже должен работать (бит №1 переменной А = 1) и он не находится в аварии (бит №1 переменной В = 1), тогда в переменной С бит №1 будет равен 1, что дает разрешение на работу насоса. Ну а на выходе мы просто извлекаем из С бит №0 и результат присваиваем его к выходу Насос 1, а бит №1 присваиваем выходу Насос 2.
Ну и общая обработка: если С больше 0, то один или оба насоса работают, если В меньше 3, то имеется авария. А=1 - должен работать Насос 1, А=2 - должен работать насос 2, А=3 - должны работать оба насоса