Elemento lógico excluindo ou. Operadores lógicos Operação lógica do VBA excluindo ou

Muitas vezes, para demonstrar as capacidades limitadas de perceptrons de camada única ao resolver problemas, ela é recorreu à consideração do chamado problema. Xor - exclusivo ou.

A essência da tarefa é ser a seguinte. A função lógica XOR está excluindo ou. Esta função é de dois argumentos, cada um dos quais pode ser zero ou unidade. É um valor quando um dos argumentos é igual a um, mas não ambos, caso contrário. O problema pode ser ilustrado usando um sistema de estágio único de camada única com duas entradas mostradas na figura abaixo.

Denote uma entrada através, e outra através, todas as suas possíveis combinações consistirão em quatro pontos no plano. A tabela abaixo mostra o link necessário entre as entradas e a saída, onde as combinações de entrada que devem fornecer saída zero são rotuladas e, uma única saída - e.

Pontos Valor Valor Saída necessária
0 0 0
1 0 1
0 1 1
1 1 0

Um neurônio com dois insumos pode formar uma superfície decisiva na forma de uma linha reta arbitrária. Para que a rede implemente a função XOR, a tabela especificada acima, você precisa posicionar o direto para que os pontos estejam em um lado direito, e o ponto é do outro. Tendo tentado desenhar uma linha reta na figura abaixo, garantimos que seja impossível. Isso significa que quaisquer valores sejam atribuídos à escalas e limiar, uma rede neural de camada única é incapaz de reproduzir a proporção entre a entrada e a saída necessária para representar a função XOR.

No entanto, a função XOR é facilmente formada por uma rede de duas camadas e de várias maneiras. Considere uma dessas maneiras. Atualizamos a rede na figura, adicionando outra camada oculta de neurônios:

Observe que esta rede é dada como é, ou seja, Podemos supor que já é treinado. Os números acima das setas mostram os valores de escalas sinápticas. Como uma função de ativação, aplicaremos a função de um único salto com um limite com o seguinte gráfico:

Em seguida, o resultado da operação de tal rede neural pode ser representado como a seguinte tabela:

Pontos Valor Valor Saída necessária
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Cada um dos dois neurônios da primeira camada forma uma superfície decisiva na forma de uma linha reta arbitrária (divide o plano em dois semi-planos), e o neurônio da camada de saída combina essas duas soluções, formando uma superfície decisiva no forma de uma tira formada por neurônios retos paralelos da primeira camada:

A rede neural usada neste artigo para resolver a tarefa XOR é primitiva e não usa todos os recursos de redes multi-camadas. É óbvio que as redes neurais multicamadas têm uma maior capacidade de representação do que uma camada única, apenas no caso da presença de não-linearidade. E nesta rede, uma função de ativação linear limiar é aplicada. Essa rede não pode ser treinada, por exemplo, aplicando um erro inversamente de distribuição de discussão.

A função realizada por eles é um pouco mais complicada do que no caso de um item e ou elemento ou. Todas as entradas de elemento excluindo ou iguais, mas nenhuma das entradas pode bloquear outras entradas definindo o sinal de saída para a unidade ou nível zero. Tabela 4.1. Verdade do tanque elementos bidirecivos de excluir ou
Login 1. Login 2. Resultado
0 0 0
0 1 1
1 0 1
1 1 0


FIG. 4.1.

Sob a função, excluindo ou refere-se ao seguinte: A unidade na saída aparece quando apenas uma entrada está presente. Se as unidades nas entradas forem duas ou mais, ou se em todas as entradas de zero, a saída será zero. Verdade do tanque O elemento de duas vezes está excluindo ou dado na tabela. 4.1. As designações adotadas em circuitos domésticos e estrangeiros são mostradas na FIG. 4.1. A inscrição na designação doméstica do elemento está excluindo ou "\u003d 1" apenas indica que a situação é distinguida quando uma e única unidade estiver nas entradas.

Elementos excluindo ou na série padrão um pouco. A série doméstica oferece chips LP5 (quatro elementos de dois eixos com saída 2C), LL3 e LP12, diferem da saída OK LP5. Função muito específica é implementada por esses elementos.

Do ponto de vista da Matemática, o elemento excluindo ou realiza a operação do chamado somação do módulo 2. Portanto, esses elementos também são chamados de aderentes no módulo dois. Como já observado na palestra anterior, o somatório do módulo 2 é um sinal de mais fechado em um círculo.

O principal uso de elementos excluindo ou, diretamente os seguintes tatasets da verdadeConsiste em comparar dois sinais de entrada. No caso, quando duas unidades ou dois zero vêm para as entradas (sinais coincidem), zero é formado na saída (consulte a Tabela 4.1). Normalmente, com este aplicativo, um nível permanente é fornecido para uma entrada de elemento, com a qual o sinal de mudança de tempo chega a outra entrada. Mas significativamente mais frequentemente para comparação de sinais e códigos aplicam fichas especiais comparadores Codov.que será discutido na próxima palestra.

Como um módulo Idder 2, o elemento está excluindo ou usado em divisores paralelos e consecutivos para o Módulo 2, que servem para calcular as verificações cíclicas. Mas esses esquemas serão discutidos em detalhes nas palestras 14.15.

Uso importante de elementos excluindo ou é um inversor gerenciado (Fig. 4.2). Nesse caso, uma das entradas do elemento é usada como gerente, e um sinal de informação chega a outro elemento. Se a unidade for inserida, o sinal de entrada será invertido se zero não for invertido. Mais frequente sinal de controle Definido por um nível constante definindo o modo do elemento, e o sinal de informação é pulsado. Isto é, um elemento excluindo ou pode alterar a polaridade do sinal de entrada ou da frente, e não pode ser alterado dependendo sinal de controle.


FIG. 4.2.

No caso em que há dois sinais da mesma polaridade (positivo ou negativo), e ao mesmo tempo sua chegada simultânea é excluída, o elemento está excluindo ou pode ser usado para misturar esses sinais (Fig. 4.3). Com qualquer polaridade dos sinais de entrada, os sinais de saída do elemento serão positivos. Com sinais de entrada positivos, o elemento excluindo ou operará como um elemento 2, e com negativo substituirá o elemento 2i - não. Tais substituições podem ser úteis nos casos em que alguns elementos excluam ou são deixados no diagrama. Verdade, deve-se ter em mente que atraso de distribuição O sinal no elemento está excluindo ou geralmente um pouco maior (cerca de 1,5 vezes) do que o atraso nos elementos mais simples e, e não, ou ou não.

Bit é uma unidade mínima de medição de informações, pois armazena um dos dois valores - 0 (FALSE) ou 1 (TRUE). Falso e verdadeiro traduzido em mentira russa e verdade, respectivamente. Ou seja, uma célula de um bit pode ser simultaneamente apenas em um estado dos dois possíveis. Deixe-me lembrá-lo, os dois estados possíveis da cadela são iguais - 1 e 0.
Existem certas operações para manipulações com bits. Essas operações são chamadas de operações lógicas ou booleanas, nomeadas após um dos matemáticos - George Bul (1815-1864), que contribuiu para o desenvolvimento desta área da ciência.
Todas essas operações podem ser aplicadas a qualquer um bit, independentemente da qual correspondesse - 0 (zero) ou 1 (um). Abaixo estão as principais operações lógicas e exemplos de seu uso.

Operação lógica e (e)

Designação e: &

Operação lógica e é executada com dois bits, vamos chamá-los e b. O resultado da operação lógica e será igual a 1, se A e B são iguais a 1, e em todos os outros (outros), o resultado será igual a 0. Nós olhamos para a tabela de verdade da operação lógica e .

um (bit 1) b (bit 2) a (bit 1) & b (bit 2)
0 0 0
0 1 0
1 0 0
1 1 1

Operação lógica ou (ou)

Ou: |

Operação lógica ou executada com dois bits (A e B). O resultado da execução de uma operação lógica ou será 0 se A e B são iguais a 0 (zero), e em todos os outros (outros), o resultado é 1 (unidade). Nós olhamos para a tabela de verdade da operação lógica ou.

um (bit 1) b (bit 2) a (bit 1) | B (bit 2)
0 0 0
0 1 1
1 0 1
1 1 1

Operação lógica excluindo ou (xor).

Designação Xor: ^
A operação lógica está excluindo ou executada com dois bits (A e B). O resultado de uma operação lógica XOR será igual a 1 (unidade), se um dos bits A ou B é 1 (unidade), em todos os outros casos, o resultado é 0 (zero). Nós olhamos para a tabela de verdade da operação lógica, excluindo ou.

um (bit 1) b (bit 2) a (bit 1) ^ b (bit 2)
0 0 0
0 1 1
1 0 1
1 1 0

Operação lógica não (não)

Notação não: ~
A operação lógica não é executada com um bit. O resultado da execução desta operação lógica depende diretamente do estado do bit. Se o bit estava em um estado zero, o resultado da não execução será igual a um e vice-versa. Nós olhamos para a tabela de verdade da operação lógica.

um (bit 1) ~ A (negação bits)
0 1
1 0

Lembre-se dessas 4 operações lógicas. Usando essas operações lógicas, podemos obter qualquer resultado possível. Detalhes sobre o uso de operações lógicas em ler C ++.

Neste artigo, falaremos sobre algumas operações de bits. Considere os principais: Xor (excluindo ou), e (e), não (não), bem como ou (ou).

Como é conhecido, a unidade mínima de medição de informações é pedaçoque armazena um dos dois valores: 0 ( Falso, mentiras) ou 1 ( Verdadeiro., verdade). Assim, a célula de bits pode ser simultaneamente apenas em um dos dois estados possíveis.

Para manipulações com bits, certas operações são usadas - lógica ou booleana. Eles podem ser aplicados a qualquer momento, independentemente do seu valor é zero ou uma unidade. Bem, vamos olhar para os exemplos de usar três operações lógicas básicas.

Operação lógica e (e)

E. Denota assina e.

O operador é realizado com 2 bits, tomamos, por exemplo, A e b. O resultado da operação de operação e é igual a 1, se A e B são iguais a 1. Em outros casos, o resultado é 0. Por exemplo, com a ajuda e você pode descobrir, um auto-número ou não.

Olhe para a tabela de verdade e:

Operação lógica ou (ou)

Denota assinatura | .

Operador Ou. Também realizado com 2 bits (A e B). O resultado é 0, se A e B são iguais a 0, caso contrário, é igual a 1. Nós olhamos para a tabela de verdade.

Operação lógica XOR (excluindo ou)

A instrução XOR é denotada ^.

Xor. Realizada com 2 bits (A e B). O resultado da operação da operação XOR ( excluindo ou) Igual a 1, quando um dos bits B ou A é 1. Em outras situações, o resultado do uso de uma instrução XOR é 0.

A tabela de verdade da operação lógica para Xor (excluindo ou) se parece com isso:

Usando Xor (exclusivo ou), você pode alterar os valores de 2 tipo de dados idêntica variável, sem usar uma variável temporária. E também, por XOR, você pode criptografar texto, por exemplo:

String Msg \u003d "Esta é uma mensagem"; Mensagem de char \u003d msg.tocuararray (); Chave de string \u003d ". *)"; Cadeia criptottingstring \u003d nova string (); para (int i \u003d 0; eu< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Eu concordo, o XOR está longe do método de criptografia mais confiável, mas isso não significa que não possa ser feito parte de um algoritmo de criptografia.

Não operação lógica (não)

É uma negação em lote, portanto, é realizada com um bit e é denotada ~.

O resultado depende do status do bit. Se estiver em um estado zero, o resultado da operação é uma unidade e vice-versa. Tudo é extremamente simples.

Essas 4 operações lógicas devem ser lembradas principalmente, porque com sua ajuda você pode obter quase qualquer resultado possível. Há também operações como<< (побитовый сдвиг влево) и >\u003e (Bitwise Shift para a direita).

O comando XOR no Assembler executa uma exceção ou entre todos os pedaços de dois operandos. O resultado da operação XOR é registrado no primeiro operando. Sintaxe:

Receptor XOR, fonte

A declaração XOR sempre cai CF e, assim como (dependendo do resultado), altera os sinalizadores SF, ZF e PF. O valor do sinalizador AF pode ser qualquer um - não depende do resultado da operação.

O receptor pode ser um dos seguintes:

  • Área de memória (MEM)

A fonte pode ser uma das seguintes opções:

  • Área de memória (MEM)
  • Registro de uso geral (reg)
  • Valor Direto - Constante (IMM)

Tendo em conta as restrições descritas acima, a combinação do receptor de origem pode ser a seguinte:

Reg, mem mem, reg reg, reg mem, imm reg, im

Operação de exclusão ou

Ao executar um valor exclusivo ou de valor, será igual a 1 se os bits forem comparados (não iguais). Se os bits comparados são o mesmo valor, o resultado será igual a 0.

Portanto, esta operação é chamada exclusiva. Ele elimina os mesmos bits de comparação e com operações de operações desiguais.

Mas, como qualquer par de bits desiguais é 0 e 1, então a operação do lógico ou como resultado dará 1.

Tatac da verdade de excluir ou

A tabela de verdade está abaixo:

0 xor 0 \u003d 0 xor 1 = 1 1 Xor 0 \u003d. 1 1 Xor. 1 = 0

Características da operação XOR

A operação XOR tem uma propriedade de reversibilidade. Se você executar duas vezes com o mesmo operando duas vezes, o valor do valor será invertido. Isto é, se você cumprir esta operação entre os bits X. e Y., finalmente recebemos o valor inicial do lote H..

0 Xor. 0 \u003d 0 xor. 0 = 0 0 Xor. 1 \u003d 1 xor. 1 = 0 1 Xor. 0 \u003d 1 xor. 0 = 1 1 Xor. 1 \u003d 0 xor. 1 = 1

Esta propriedade pode ser usada, por exemplo, para a criptografia de dados mais simples (isso é de alguma forma outro).

Verificando a bandeira após a operação do XOR

O comando XOR funciona com operações de 8, 16 e 32 bits.

Às vezes, há uma necessidade de verificar a bandeira do PF depois de realizar a operação, a fim de descobrir quantos bits de unidade (mesmo ímpares) estão contidos em baía júnior Resultado (isso é necessário não apenas se a operação XOR for executada, mas também ao executar outras operações aritméticas e lógicas).

Se o sinalizador estiver instalado, o resultado será um número claro de bits únicos. Caso contrário, o sinalizador será redefinido.

Você também pode simplesmente verificar qualquer número, sem alterar o valor do resultado. Para fazer isso, você precisa executar o comando XOR com valor zero. Ou seja, o receptor deve ser um número verificável, e a fonte deve ser zero. E então você precisa verificar a bandeira da crença. Exemplo:

Al, 10110101b; lugar em al um número com ímpar; número de bits únicos (5) xor al, 0; ao mesmo tempo, a bandeira do PF não é; conjunto (po) mov al, 10110111b; lugar no número com um leitor; o número de bits únicos (6) xor al, 0; neste caso, a bandeira do PF; será definida (PE)

Nos depuradores, é geralmente usado para designar uma série de unidades no resultado resultante, e a paridade ainda redução é usada, e para ímpar - po (paridade ímpar).

Pronto em palavras de 16 bits

Como já mencionado, o sinalizador de crenças é definido dependendo do número de unidades contidas nos resultados mais jovens. Para verificar o leitor de operação de 16 bits, você precisa executar o comando XOR entre o senior e o byte mais jovem deste número:

MOV AX, 64C1H; 0110 0100 1100 0001 - 6 bits únicos xor Ah, al; bandeira de prontidão serão instaladas

De uma forma tão simples, o operando de 16 bits é dividido em dois bytes (2 grupos de 8 bits), e ao executar o comando XOR, os bits únicos nas descargas correspondentes de dois operandos de 8 bits não serão levados em conta. Porque o bit correspondente do resultado é zero.

O comando XOR remove quaisquer bits de unidades de interseção de dois operandos de 8 bits do resultado e adiciona bits individuais para o resultado. Ou seja, a prontidão do número de 8 bits recebida por nós será a mesma que a prontidão do número original de 16 bits.

0110 0100 1100 0001 - Número de 16 bits de origem 0 Xor. 1 = 1 1 Xor. 1 = 0 1 Xor. 0 = 1 0 Xor. 0 = 0 0 Xor. 0 = 0 1 Xor. 0 = 1 0 Xor. 0 = 0 0 Xor. 1 = 1

Como resultado, 4 unidades, ou seja, o sinalizador PF será instalado

Pronto em palavras duplas de 32 bits

Bem, se você precisar determinar a prontidão em um número de 32 bits?

Em seguida, o número é dividido em quatro bytes, e é alternadamente com esses bytes, uma operação é realizada ou.

Por exemplo, nós quebramos um número de 32 bits B. Quatro bytes. B0., B1., B2., B3.Onde B0. - É um byte mais novo.

Em seguida, para determinar a prontidão do número, precisaremos usar a seguinte fórmula:

B0 XOR B1 XOR B2 XOR B3

Mas no montador, tal registro é inaceitável. Portanto, você tem que pensar um pouco.

E finalmente, a origem dos mnemônicos Xor.. Há uma palavra e em inglês X.cepção - exceção. Redução desta palavra é a letra H. (Então foi necessário). Você provavelmente se encontrou em publicidade ou nos nomes dos produtos cujos fabricantes reivindicam (bem, ou pensam nessa reivindicação) para exclusividade. Por exemplo, Lada Xray, Sony Xperia, etc. Então Xor é uma abreviação coletada de duas palavras - E X.cepção Ou. - excluindo ou.