Portas ou circuitos lógicos são dispositivos que operam e trabalham com um ou mais sinais lógicos de entrada para produzir uma e somente uma saída, dependente da função implementada no circuito.
As situações “Verdade” e “Falso” são estudadas na Lógica Matemática ou Lógica de Boole. Existem as seguintes portas lógicas: AND, OR e NOT são as principais, pois com elas podemos formar as demais que são: NAND, NOR , XOR e XNOR .
Lembrando que ao analisar saída de execução: 0 é verdadeiro(sem erro) e 1 é falso( >= 1 é erro), então isso pode confundir sua mente ao analisar os exemplos, pois é o contrário, mas eu não vou inverter porque é assim que é na realidade, então vamos usar o conceito de computação e não de saída de execução: 0 como falso e 1 é verdadeiro . 😃
logical_and
Essa porta resulta em um valor lógico verdadeiro somente se todos os operados tem um valor verdadeiro( nesse caso é 1 ). Uma idéia de entendimento seria dois interruptores ligados em série ) e uma lâmpada no final, ou seja, a lâmpada só será ligada se esses dois interruptores estiverem ligados.
Para esses exemplos usaremos a função std::transform . Vamos analizar a saída da combinação de dois arrays usando a std::logical_and
:
A saída será:
Caso queira ver a saída literal, use assim:
A saída será:
Ou seja, igual ao exemplo das lâmpadas, somente se ambos for verdadeiro que a saída é verdadeira!
logical_not
A Porta NOT ou inversora é uma porta lógica digital que implementa a negação lógica, de acordo com a tabela verdade abaixo. Ou seja, se for falso ele retorna true e se for true ele retorna false.
Nesse exemplo usaremos somente um array(somente com 2 elementos) e lógico só passaremos 4 parametros para o
std::transform
.
A saída será:
logical_or
A porta lógica OR também é chamada de disjunção lógica, é uma operação lógica entre dois ou mais operandos que resulta em um valor lógico falso se, e somente se, todos os operandos tiverem um valor falso.
Ou seja, se todos os valores forem falsos será falso, caso contrário será verdadeiro.
Retornando o exemplo de analisar 2 arrays.
A saída será:
Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço: