Programar em C/Operadores: diferenças entre revisões

m
Foram revertidas as edições de Praxidicae (disc) para a última revisão de 200.198.216.231
[revisão pendente][revisão pendente]
m (Foram revertidas as edições de 200.198.216.231 (disc) para a última revisão de 187.60.151.67)
m (Foram revertidas as edições de Praxidicae (disc) para a última revisão de 200.198.216.231)
Etiqueta: Reversão
|}
 
VoçêVocê poderia se perguntar: Como é que o computador faz essa comparação ? de onde é que ele sabe que um número A é maior que outro B?
 
'''Resposta''': Considere que você quisesse comparar dois dados tipo char, lembrando que um char na verdade é um número inteiro na tabela ASCII. Sendo assim suponha que gostarias de comparar o caractere 'a' que é igual a 97 na tabela ascii com o caractere 't' que é 116 na tabela; assim, ao comparar 97 com 116 o que aconteçe na memória é a comparação de 01100001 (97) com 01110100 (116) em um registrador específico, vão sendo somadas as potências de 2 da esquerda para a direita de forma que fica evidente para ele (o registrador) quem é maior. Isso é o que aconteçe quando comparamos duas strings com a função strcmp e ela retorna um número para a diferença entre elas. Esse número é justamente a diferença entre os valores da tabela ASCII entre o primeiro caractere das duas.
 
Estes operadores também são binários mas desta vez os operandos são resultados boolean, que podem advir dos operadores relacionais (comparação) pois davam valores boolean.
* Para o operador and (&&) – basta uma das comparações ser falsa paropara o resultado ser falso
* Para o operador or (||) – basta uma das comparações dos operandos ser verdadeira para se tornar verdadeira
* Por fim o operador not— é um operador unário – é apenas para um valor boolean que pode ser resultado de comparação
== Precedência Operadores lógicos e Relacionais ==
Tabela: A preçedençiaprecedência dos operadores logicoslógicos e relacionais
Operador (da mais alta para a mais baixa)
!
59

edições