Operadores C e expressões


A linguagem de programação C fornece um rico conjunto de operadores que podem ser usados ​​para manipular os dados.

Operadores são símbolos como "+ "e" = "que são usadas em combinação com as variáveis ​​e constantes, de modo a criar expressões. As expressões são declarações que C que, quando avaliada, permitem a obtenção dos dados.




I operadores grupo de acordo com a sua utilização abaixo. Agora, mesmo se vamos ver os operadores de atribuição em mais detalhes a seguir, por favor, note que a base de operador de atribuição é o sinal de igual "=. "Isto é um pouco 'diferente do símbolo de igualdade em Matemática.

Portanto, no código de exemplo a seguir, não estamos testando se var é igual a 10, mas estamos atribuindo o valor de 10 para a variável var.

var = 10;

Os operadores aritméticos

Vamos ver primeiro a "aritmética" os chamados operadores que você pode ser bem conscientes.

Símbolo Significado * multiplicação / divisão % módulo + adição - subtração

Os operadores do acima também são considerados como "binário "operadores. Por favor, não acho que eles são usados ​​para manipular dados binários. O termo binário significa simplesmente que essas operadoras precisam dois valores, a fim de funcionar corretamente. Ver os exemplos abaixo:

x = 2 + 3; x = 10 * 5; x = 18-5; x = 5/4;

Observe os exemplos acima que há um valor para a esquerda e direita de operadores aritméticos usados. Estes são, na verdade, chamado de "operandos ". Operands também pode ser variável. Além disso, você também pode colocar vários operadores e operandos em uma linha de código. Veja abaixo para mais exemplos.

x = 2 + 3 * 5; y = x * x; z = 120 * 5 - x;

Agora você pode pensar, se há mais jogadores em uma única linha, que é a ordem em que eles são avaliados? Felizmente C segue a convenção em Matemática. Para recordar, aqui é a ordem das operações a serem tomadas, isto é normalmente conhecido como o regra de precedência.

  1. Expressões entre parênteses são avaliadas antes
  2. então termos com expoentes
  3. em seguida, multiplicar, dividir e forma
  4. e, finalmente, a adição ea subtracção

Isso é muito simples, não é. Deixo-vos a experimentar este.

Para quem ainda não sabe, módulo é usado para obter o resto de uma operação de divisão. 10% 3 lhe dará 1. Isto porque 10/3 = 3 1 remanescente.

operadores lógicos e relacionais

Os operadores relacionais e lógicos são usados ​​para comparar dois valores. Estes ainda são considerados como operadores binários requerem dois operandos para funcionar corretamente.

Estaremos em discussão instruções condicionais em C mais tarde como parte do tema "Controlando o Fluxo de Programa ", onde vamos ver as palavras-chave se, interruptor e loops.

Por enquanto, apenas se familiarizar com as operadoras e seus significados abaixo. Note também que os operadores relacionais e lógicos são mais baixos em precedência à aritmética operadores. Em outras palavras, data:

x

o compilador irá interpretar isso como

x <(y + 5)

Em outras palavras, y + 5 serão avaliadas e, em seguida, comparar o resultado com X.

Abaixo está uma tabela mostrando os operadores relacionais e lógicos dispostos em ordem de precedência. Símbolos no topo leva símbolos superiores precedência na parte inferior.

Símbolo Significado < menor que <= inferior ou igual > topo > = maior ou igual == é igual ! = Não é igual a && E lógico || Lógico OR

operadores bit a bit

Operadores de bits são usados ​​para executar a manipulação de bits. Há seis destes operadores utilizados em C e são relatados na tabela a seguir.

Símbolo Significado << desvio à esquerda >> deslocamento para a direita & Bit a bit | OR bit a bit ^ XOR ~ NOT bit a bit

Como uma breve revisão de operações bit a bit, tente se lembrar que os dados no nível mais baixo é o computador em dígitos binários ou "bits". Os dados só podem ser representados pelos dígitos 1 e 0. Por exemplo, o valor decimal 65 serão armazenados no computador como 01000001. Isto também pode ser representado em notação hexadecimal ("base 16") como a notação 0x41.

Por conseguinte as operações de bit a bit são operações que afectam o valor de um bit ou bits que representam dados. Por exemplo, a expressão inferior terá o efeito de converter o valor decimal 65 no valor decimal 130. Ou em hexadecimais 0x41 a 0x82 é convertido.

65 << 1

Então, o que aconteceu aqui? Assim, dado decimal 65, que é representado em binário como:

0 1 0 0 0 0 0 1

Note que eu mostrei apenas as crianças com o número 8-bit. Na realidade, o número será armazenado num computador utilizando 32, 16 ou 8 bits, dependendo do tipo de dados. Ao mover-se para a esquerda é aplicado usando o "<<" operador. Todos os bits são movidos para a esquerda por uma posição. Uma vez que existem apenas tantos pedaços que podem conter o número, tornando a curva para a esquerda teria o efeito de tornar o bit mais à esquerda a cair e a posição mais bit direito de estar vazio.

Portanto, se, por exemplo, o valor de 65 acima é do tipo char, então há apenas 8 posições de bits disponíveis para armazená-lo. Assim, com o desvio para a esquerda de uma posição pouco, isso é o que vai acontecer.

0 1 0 0 0 0 0 1 0

Quanto mais à esquerda será liberado para zero, então o próximo bit, que é 1, vai tomar o seu lugar e se tornar o novo bit mais à esquerda. Então a próxima de zero e todas as outras zeros que vai mover-se para a esquerda da mesma maneira.

Como os bits mover dessa forma, um novo bit vazio aparecerá para os bits certos. Esta posição vazia serão tomadas por um valor igual a zero. É como como se este novo zero na direita tem empurrado todos os bits a cair esquerda e mais à esquerda ZERO Off no processo.

O que você está com a esquerda é:

1 0 0 0 0 0 1 0

Qual é 130 em decimal e hexadecimal 0x82.

Operadores de Atribuição

Operadores de atribuição são operadores usados ​​para atribuir o valor de uma expressão a uma variável ou constante. Vimos que o operador sinal de igualdade que nós sabemos muito bem atribuir o valor para a direita para o identificador da esquerda. No entanto, há outros operadores que podem ser utilizadas, tais como "+ = ", que é" mais "e" sinais iguais "juntos.

O "+ "símbolo pode ser qualquer um dos operadores binários como acima -, <<, *, etc. Este tipo de operador de atribuição é normalmente usado para aumentar ou diminuir uma variável Vamos dizer que você tem uma expressão como esta.:

x = x + 5;

Nós sabemos que você está atribuindo x + 5 para a variável X. Isto pode ser escrito como:

x = 5 +;

A expressão acima geralmente ser lido como "aumento de X 5 "Mais uma vez, isso vale para os outros operadores binários acima incluindo operadores bit a bit Então você pode ter os seguintes exemplos ..:

x * = 100; << Y = 1; Z & = 0xFF;

Os operadores unários

Os operadores unários são operadores que necessitam de um único operando. Isso vai incluir o seguinte:

Símbolo Significado ! Lógico NOT ~ NOT bit a bit +, - positivo, negativo ++ um aumento de - diminuição de um * desreferenciava & Endereço

A lógica não fazer um valor diferente de zero a zero e vai fazer um valor de zero 1. Por exemplo:

! 5 ao 0

! 0 ao 1

Não é o bit irá inverter os bits de um valor. Assim, por exemplo:

~ 7 ao -8

Este bit a bit operação não pode ser difícil e vai exigir que você reveja o seu primeiro e complemento de dois para melhor compreendê-los.

O incremento e decremento são semelhantes a + = e - = operadores de atribuição acima. Desta vez, porém, nem sempre adicionar ou subtrair uma da variável.

Os operadores * e & aqui, que pode ser confundida com a multiplicação e pouco e operadores, são usados ​​em uma variável chamada avançada apontador. Nós vamos nos divertir com ponteiros mais tarde, mas não agora.

Isto tudo pode ser um monte 'de digerir para agora, então eu vou parar por aqui e passar para outros assuntos mais interessantes da próxima vez. Como um exercício para você, e se o resultado de uma expressão não corresponde a variável-alvo ("a variável no lado esquerdo da equação"). Como exemplo a seguir, onde X é um número inteiro, mas 5/4 rendimento 01:25, que é uma bóia?

int x = 5/4;

Ou que sobre este vizinho, onde o resultado será 36100, que é mais do que pode ser armazenado em um carbonizar variável?

Char y = 190;

caractere z;

z = y * y;

(0)
(0)

Comentários - 0

Sem comentários

Adicionar um comentário

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caracteres restantes: 3000
captcha