Guest Julian Postado Abril 20, 2005 Denunciar Share Postado Abril 20, 2005 ola..to com um problema pra entender esse tipo de expressaotipo, se eu pegar 3 and 2 o resultado é 2, porque????se eu pega tb 6 and 2 o resultado tb é 2, ou tb 7 and 2...queria intender o porque disso...brigadu.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ozi Postado Abril 20, 2005 Denunciar Share Postado Abril 20, 2005 N~ entendí bem, poste o codigo pra vê se da pra agente ententer melhor mano!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Julian Postado Abril 21, 2005 Denunciar Share Postado Abril 21, 2005 tipo...existe algumas expressões no visual basic que são assimX and Y, essa expressão volta um resultado (como se fosse 2 + 2, o resultado é 4)... oque eu não intendo o qual o tipo de calculo que se faz nessa expressão para de ter um resultado...tipo eu já vi um exemplos de "ifs" if (4 and 2) = 2 then conteudo aqui end ifnesse exemplo acima o resultado da condição vai se "FALSO", e é isso q quero saber, o porque q é FALSO...deu pra intende agora.....eu não to intendendo esse tipo de expressão.....tem outros como X ORY e entre outros....mais se me explicarem um já ta valenu....brigadu... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ozi Postado Abril 21, 2005 Denunciar Share Postado Abril 21, 2005 if (4 and 2) = 2 then conteudo aquiend ifta dando falso porque o 4 e o 2 tem que ser = a 2Se você quer somar o conteudo de 4 e 2 então você tem que fazer: if (4 + 2)=2 thenconteudoend ifmesmo assim 4 +2 = 6, enta vai retornar falso do mesmo jeito Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Abril 21, 2005 Denunciar Share Postado Abril 21, 2005 faca assimif (4 /2)=2 thenconteudo="fdfff"end ifai vai ser verdadeiro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 21, 2005 Denunciar Share Postado Abril 21, 2005 No caso, o que ocorre ao fazer é 4 AND 2 é a operação de AND com cada um dos bits. Creio que você já conheça as operações booleanas, certo? Se não, vai uma pequena explicação: a operação de AND (E) entre dois valores booleanos (ou seja, entre VERDADEIRO e FALSO e quaisquer combinações possíveis), vai retornar VERDADEIRO somente se os dois valores forem VERDADEIROS. Exemplo:VERDADEIRO E FALSO = FALSOFALSO E VERDADEIRO = FALSOFALSO E FALSO = FALSOVERDADEIRO E VERDADEIRO = VERDADEIROSacou? Agora, vamos transformar os valores 4 e 2 em binários:4 = 1002 = 10Lembrando que 0 é FALSO e 1 é verdadeiro, vamos fazer a operação da direita para a esquerda:0 E 0 = 00 E 1 = 01 E 0 = 0Ou seja, tudo falso. Formando um valor decimal com os três resultados (000) resultará em 0. Agora vamos fazer com 6 e 2:6 = 1102 = 100 E 0 = 01 E 1 = 11 E 0 = 0Formando um valor decimal com 010 resultará em 2. Por isso, (6 AND 2) retorna 2. E se você fizer: (6 AND 2) = 2, a expressão será verdadeira, pois se a desenvolvermos teremos (2) = 2.O propósito básico de utilizar expressões assim é saber se um valor binário está contido em outro, ou a intersecção entre eles, ou até mesmo para saber se eles são iguais. Certo? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Julian Postado Abril 22, 2005 Denunciar Share Postado Abril 22, 2005 ola....Graymalkin muito obrigado pela ajuda...cara só q ainda to com duvidas...tipose disse q 6 = 110 e 2 = 10, da onde surgiram esse 110 e esse 10? outra duvida é...O propósito básico de utilizar expressões assim é saber se um valor binário está contido em outro, ou a intersecção entre eles, ou até mesmo para saber se eles são iguais. Certo? essa parte eu não intendi..tipo, o que seria esse "para saber se um valor esta condido ou em interseção com outro", eu não saquei muito bem onde é q a expressão mostra q um numero esta ou não contido ou em interseção em outro...tipo a resolução da expressão que você monto fico bem explicada só q eu ainda não intendi a real utilidade dela, tem como se faze um exemplo bem simplesinho pra mim ve de onde eu posso usar esse tipo de expressão? e se não for pedir muito gostaria de um exemplo com o operador "oR" tb...brigadaoo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ozi Postado Abril 22, 2005 Denunciar Share Postado Abril 22, 2005 Grande Graymalkin!Como sempre salvando nossa patria, mandou bem na explanation!confesso q manjo muito pouco de operadores lógicos. so o básico mesmo, mas não poderia deixar de pelo menos tentar ajudar, beleza?Abrçs a todos---Ozi--- Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 23, 2005 Denunciar Share Postado Abril 23, 2005 Grande Graymalkin!Como sempre salvando nossa patria, mandou bem na explanation!confesso q manjo muito pouco de operadores lógicos. so o básico mesmo, mas não poderia deixar de pelo menos tentar ajudar, beleza?Abrçs a todos---Ozi--- Sim, claro. O importante é tentar ajudar. Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 23, 2005 Denunciar Share Postado Abril 23, 2005 Antes de explicar o OR, vale uma pequena explicação de como o 4 virou 100 e o 2 virou 10. Nós, atualmente, utilizamos o sistema decimal em nosso dia-a-dia. Esse sistema consiste em 10 algarismos (daí o nome "decimal"), a saber: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Todos os valores imagináveis, dentro do sistema decimal, serão formados através da mistura destes algarismos. Agora, imagine que, ao invés de utilizarmos 10 algarismos, nós quiséssemos utilizar apenas 2 algarismos (0 e 1, apenas). Como representaríamos todos os valores possíveis (2, 10, 25, 92, 1024, 2999, etc.) utilizando apenas dois algarismos? Do mesmo jeito que fazemos com o sistema decimal: fazendo combinações com esses dois algarismos. Exemplos (a primeira coluna é o valor decimal e a segunda é o valor binário):0 = 01 = 12 = 10 (lê-se "um zero")3 = 11 (lê-se "um um")4 = 100 (lê-se "um zero zero")5 = 101 (lê-se "um zero um")6 = 1107 = 1118 = 10009 = 100125 = 1100192 = 10111001024 = 100000000002999 = 101110110111Como você pode notar, qualquer valor decimal pode ser representado em binário (e vice-versa). Além do sistema binário existem ainda os sistemas hexadecimal (que utiliza 16 algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F) e octal (que utiliza 8 algarismos, sendo de 0 a 7). E é claro, você pode criar seu próprio sistema também, se quiser. Não vou entrar em detalhes em como se faz a conversão entre as bases, porque provavelmente, em algum momento, você vai aprender isso em sala de aula. Aliás, a Álgebra de Boole (ou Álgebra Booleana), na qual você verá os operadores AND, OR, XOR, NOT, etc., também deverá aparecer em algum momento.Agora vamos ao caso do operador OR. A operação booleana OR (OU) retorna VERDADEIRO se qualquer um dos operandos for VERDADEIRO. As possibilidades são:VERDADEIRO OU FALSO = VERDADEIROFALSO OU VERDADEIRO = VERDADEIROVERDADEIRO OU VERDADEIRO = VERDADEIROFALSO OU FALSO = FALSOA operação de OR entre dois valores decimais faz exatamente a mesma coisa que a operação de AND que citei antes (ou seja, opera bit a bit). Exemplo:2 = 104 = 1000 OR 0 = 01 OR 0 = 10 OR 1 = 1No caso, o valor 110 em binário corresponde ao valor 6 em decimal. Note que o resultado de 4 OR 2 será 6 e fica parecendo que o resultado é o mesmo de 4+2. Nesse caso é verdade, mas nem sempre o será. Um outro exemplo (7 OR 5):7 = 1115 = 1011 OR 1 = 11 OR 0 = 11 OR 1 = 1No caso acima, o resultado será o próprio 7.Sacou? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Abril 23, 2005 Denunciar Share Postado Abril 23, 2005 você conhece a logica digital? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 você conhece a logica digital? Para quem é a pergunta? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Julian Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 olá...Graymalkin..cara você é professor?, meu você explico muitoo bem cara..eu intendi legal a parte de numeros binarios, tipo, o porque q o 2 vale 10 em binario, ou o 7 vale 111....brigadu..só q ainda não intendi o porque de se usar este tipo de expressão seja ela OR, AND OU qualquer uma, tipo agente sabe q quando se usa o operador "+" é para adionar um numero ao outro, ou quando tiramos a raiz quadrada de um numero X, sabemos q é pra se saber qual numero q multiplicado por ele mesmo é igual a X...mais quando usamos esse tipo de expressão X and Y (ou OR) não intendo qual seria a utilidade...bom acho q é só isso q tenho duvida...cara brigadu por todas as respostas...valeu.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 Graymalkin..cara você é professor?Pretendo ser... meu você explico muitoo bem cara..eu intendi legal a parte de numeros binarios, tipo, o porque q o 2 vale 10 em binario, ou o 7 vale 111....brigadu..Obrigado e de nada. só q ainda não intendi o porque de se usar este tipo de expressão seja ela OR, AND OU qualquer uma, tipo agente sabe q quando se usa o operador "+" é para adionar um numero ao outro, ou quando tiramos a raiz quadrada de um numero X, sabemos q é pra se saber qual numero q multiplicado por ele mesmo é igual a X...mais quando usamos esse tipo de expressão X and Y (ou OR) não intendo qual seria a utilidade...Sim, a utilização de tais expressões possuem situações específicas (não tão gerais, pelo menos no dia-a-dia, quanto as operações aritméticas, como você citou). Uma situação dessas é quando você possui um campo "flag". Um campo "flag" (do inglês, "bandeira") é utilizado para sinalizar algo (esse "algo" você pode imaginar como "opções" a serem habilitadas ou desabilitadas). Olhemos agora um número binário arbitrário:1011100O que você vê? Uma sequência de 0s e 1s, você poderá pensar. E sim, de fato é isso. Mas, a principal característica de um número binário é justamente o fato de que só existem dois valores possíveis (ou 0 ou 1). Como já vimos antes, esse 0 pode ser chamado de FALSO e o 1 pode ser chamado de VERDADEIRO (na lógica formal), mas não podemos atribuir novos significados a eles? Sim, claro que podemos: chamemos 0 de DESLIGADO e 1 de LIGADO. O que temos agora? Uma sequência de "interruptores" (sim, interruptores como os que você usa para ligar a lâmpada do seu quarto ou da sua sala). Na sequência acima o primeiro bit está DESLIGADO (estou começando da direita para a esquerda) e o último bit está LIGADO. Note que estou chamando os bits pela ordem, porém formalmente o primeiro bit é chamado de bit0 e assim por diante (sempre començando do 0). No caso aqui estarei começando sempre por 1 (primeiro), pois fica mais fácil de se visualizar. Então, como posso saber se o terceiro bit está ligado ou desligado? Através de uma operação de AND:1011100AND0000100=0000100Como a operação de AND só vai retornar 1 se ambos os valores forem 1, ao realizar a operação com o valor binário 100 eu sei que se o resultado final for o próprio valor é porque esse bit está ligado. Se eu fizesse:1011100AND0000010=0000000O resultado final seria 0, e eu saberia que o 2º bit está desligado. Mais um exemplo:1011100AND0001000=0001000O resultado final bate com o valor testado, por isso eu sei que o quarto bit está ligado. Entendido?Agora, voltemos aos números decimais. Aquela sequência arbitrária é o valor 92 em decimal. Se eu quisesse saber quais bits estão ligados ou desligados, bastaria que eu fizesse os testes:92 AND 1 = 092 AND 2 = 092 AND 4 = 492 AND 8 = 892 AND 16 = 1692 AND 32 = 092 AND 64 = 64Note que os resultados *só* são diferentes de 0 nos bits cujo valor é 1 (terceiro, quarto, quinto e sétimo bits). Por que 1, 2, 4, 8, 16, 32 e 64? Veja a tabela abaixo:1 = 00000012 = 00000104 = 00001008 = 000100016 = 001000032 = 010000064 = 1000000As potências de 2 são os valores mais utilizados em operações binárias porque são compostos por apenas um bit ligado e em uma posição específica.Voltemos agora ao caso de um campo "flag". Como eu disse antes, um campo "flag" sinaliza algo e podemos encarar um valor binário como uma sequência de "interruptores". Por isso, *no mínimo* aí (para o valor 92) temos 7 "opções" (a quantidade de bits do valor 92) que podemos desligar e ligar (imagine um painel com 7 interruptores e 7 lâmpadas correspondentes). Porém, nada impede ainda que combinações de interruptores possam também ter efeitos específicos (ao ligar dois determinados interruptores uma determinada lâmpada pode piscar rapidamente; ao ligar determinados três interruptores uma determinada lâmpada pode piscar lentamente; e assim por diante). Como temos 7 bits possíveis sendo que cada um pode assumir 2 valores (0 ou 1), o total de combinações possíveis é: 2^7 (2 elevado à 7ª potência), o que resulta em 128 combinações! Veja que coisa magnífica: com apenas um valor (92) eu posso representar 128 situações diferentes! Listar todas elas aqui seria extremamente exaustivo (e totalmente desnecessário), por isso vou colocar apenas alguns exemplos:valor = 92 if valor and 1 = 1 then 'Se o primeiro bit estiver ligado nome = "Julian" else 'Se o primeiro bit estiver desligado nome = "Junior" endif if valor and 2 = 2 then 'Se o segundo bit estiver ligado nome = "Remy" else 'Se o segundo bit estiver desligado nome = "Logan" endif if valor and 4 = 4 then 'Se o terceiro bit estiver ligado nome = "Scott" else 'Se o terceiro bit estiver desligado nome = "Alex" endif if (valor and 2 = 2) and (valor and 4 = 4) then 'Se o segundo e o terceiro bits estiverem ligados SIMULTANEAMENTE nome = "Warren" else 'Se o segundo OU o terceiro bits (ou ambos) estiverem desligados nome = "Henry" endif if (valor and 2 = 2) or (valor and 8 = 8) then 'Se o segundo OU o quarto bits (ou ambos) estiverem ligados nome = "Piotr" else 'Se o segundo E o quarto bits estiverem desligados nome = "Robert" endif Note que nos dois últimos Ifs eu demonstrei como pode-se combinar, de forma simples, os resultados a fim de obter outras possibilidades (muitas outras combinações podem ser utilizadas). Note que até agora só utilizei o AND para explicar o caso, mas o operador OR também é extremamente útil no caso. Mais precisamente, o AND serve para *testar* e o OR serve para *definir*. Se quiser ligar os três primeiros bits, eu posso simplesmente fazer: valor2 = 1 or 2 or 4 Como sabemos o resultado de 1 OR 2 OR 4 vai ser 7 e que o valor binário de 7 é 111. Para as potências de 2 aquela idéia de somar vai ser sempre verdadeira, por isso o resultado acima seria o mesmo que: valor2 = 1 + 2 + 4 Sabendo isso, como eu poderia saber se dois bits estão ligados simultaneamente de uma forma mais prática do que a que utilizei nos exemplos acima? Veja abaixo: valor = 92 valor2 = 4 or 8 'que é o mesmo que 4+8, ou seja, 12 if valor and valor2 = valor2 then 'o terceiro E o quarto bits estão ligados else 'o terceiro OU o quarto bits (ou ambos) estão desligados endifApesar de não utilizarmos extensivamente essas operações na programação do dia-a-dia, é possível citar alguns exemplos: tags de arquivos MP3, onde várias informações sobre as informações contidas dentro do arquivo são expostas em flags; a propriedade Flags do controle CommonDialog (bastante utilizado no VB) que possui várias opções "extras" que podem ser ativadas; e a criptografia (na qual se utiliza o operador XOR, o "OU eXclusivo"). Esses são exemplos que imaginei agora, mas devem haver outros. É interessante também salientar que as operações lógicas estão ocorrendo o tempo todo e de forma intensa no seu computador (e em milhares de outros equipamentos eletrônicos). Calculadoras, por exemplo, fazem a operação de "soma" através do operador OR. Seu computador sabe que você apertou uma tecla enquanto segurava o SHIFT, o ALT ou o CONTROL através de um bit que é alterado nesses casos (o que pode ser testado com um AND). Seu computador só está recebendo dados da internet no momento (e é capaz de se comunicar com outros computadores em uma rede local) devido a uma operação de AND que é realizada entre o endereço IP de destino e a sub-máscara. Para uma computador acessar um determinado site ou serviço na grande teia mundial, seus dados irão trafegar por vários roteadores que estarão realizando operações de AND a fim de decidir para onde irão enviar os dados. Discos rígidos e softwares implementam "espelhamentos" ou "sombreamentos" (que é ter uma cópia dos dados de um disco em outro, de forma quase simultânea) guardando apenas determinados bits em um disco e em outro, de forma a reconstituir os bits faltantes (através das operações lógicas AND e OR) caso um dos discos pare de funcionar. Magnífico esse nosso mundo de bits e bytes, não? Nossa, me empolguei e escrevi muito... Espero que você tenha paciência para ler até o final.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 Para quem é a pergunta? Abraços,Graymalkin Para você mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 Para quem é a pergunta? Abraços,Graymalkin Para você mesmo Não, não conheço algo com esse nome ("lógica digital"). Haveria algum outro nome para isso?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 Seria Introducao a logica digital bom no meu curso Informatica industrial é assim que se chama pois estou estudando as portas logicas OR, AND, NAND, NOR, XOR, ENOR pois tudo que você falou ai eu aprendi isso neste curso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 24, 2005 Denunciar Share Postado Abril 24, 2005 Seria Introducao a logica digital bom no meu curso Informatica industrial é assim que se chama pois estou estudando as portas logicas OR, AND, NAND, NOR, XOR, ENOR pois tudo que você falou ai eu aprendi isso neste curso Ah tá, é isso aí mesmo então. Eu aprendi isso aí quando se falou de portas lógicas (no 2º Grau) e depois em Matemática, quando se falou de Lógica (ou Álgebra de Boole).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Abril 25, 2005 Denunciar Share Postado Abril 25, 2005 Mas então em sua escola tinha curso tecnico junto? Pois na minha não somente matematica que eu vi Algebra Boole Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 25, 2005 Denunciar Share Postado Abril 25, 2005 Mas então em sua escola tinha curso tecnico junto? Pois na minha não somente matematica que eu vi Algebra Boole Sim, eu fiz o Ensino Médio (2º Grau) de Técnico em Informática. Porém, como a lei tinha mudado no mesmo ano que comecei, tive também todas as matérias de Formação Geral junto com as matérias técnicas.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Abril 25, 2005 Denunciar Share Postado Abril 25, 2005 Sim, eu fiz o Ensino Médio (2º Grau) de Técnico em Informática. Porém, como a lei tinha mudado no mesmo ano que comecei, tive também todas as matérias de Formação Geral junto com as matérias técnicas.Abraços,Graymalkin Po legal! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Julian
ola..
to com um problema pra entender esse tipo de expressao
tipo, se eu pegar 3 and 2 o resultado é 2, porque????
se eu pega tb 6 and 2 o resultado tb é 2, ou tb 7 and 2...queria intender o porque disso...brigadu..
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.