C/Operadores: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
Completado co contido da versión en inglés.
Gallaecio (conversa | contribucións)
Outra apliación, cos desprazamentos de bits, cambios de formato nalgunhas listas, e exemplos adicionais.
Liña 156:
 
O seu símbolo é o guión curto, «<code>-</code>», e colócase entre dous valores ou variables para restarlle o segundo valor ao primeiro.
 
==Desprazamento==
===Desprazamento á esquerda===
O operador «<code><<</code>» despraza a representación binaria cara a esquerda, tirando cos bits máis significativos e engadindo bits de valor <code>0</code> ao final. O resultado equivale a multiplicar o enteiro por unha potencia de dous.
:Por exemplo, a nivel binario, <code>1100 << 1</code> dá como resultado <code>11000</code>.
 
===Desprazamento á dereita===
O operador de desprazamento á dereita, «<code>>></code>», actúa de forma distinta segundo o tipo de dato co que traballe, segundo este sexa natural (só valores positivos) ou enteiro (valores positivos e negativos).
 
O operador de desprazamento á dereita para valores naturais é o que ás veces se coñece coma desprazamento lóxico á dereita. Despraza a representación binaria á dereita, tirando cos bits menos significativos e engadindo bits de valor <code>0</code> ao principio. O resultado é equivalente a dividir por unha potencia de dous no caso dos números naturais.
 
:Por exemplo, a nivel binario, <code>1100 >> 1</code> dá como resultado <code>110</code>.
 
O operador de desprazamento á dereita para valores enteiros é o que ás veces se coñece coma desprazamento aritmético á dereita. Despraza a representación binaria á dereita, tirando cos bits menos significativos, pero engadindo bits ao principio co mesmo valor do bit de signo orixinal. O resultado é equivalente a dividir por unha potencia de dous no caso dos números naturais.
 
==Operadores de comparación==
Entre dúas expresión, devolven <code>1</code> cando se cumpre a expresión e <code>0</code> cando non. Son os seguintes:
*maiorMaior que:, «<code>></code>».
*menorMenor que:, «<code><</code>».
*maiorMaior ou igual que:, «<code>>=</code>».
*menorMenor ou igual que:, «<code><=</code>».
 
==Operadores de igualdade==
Funcionan do mesmo xeito que os [[{{PAGENAME}}#Operadores de comparación|operadores anteriores]], coa diferencia de que teñen menos prioridade de execución. Son os seguintes:
*igualIgual que:, «<code>==</code>»<ref>Non confundir con <code>=</code>, o símbolo de asignación de valores ás variables.</ref>.
*distintoDistinto de:, «<code>!=</code>».
 
==Operadores a nivel de bit==
Para comprender o seu significado, cómpre botarlle unha ollada ao [[Sistemas informáticos multiusuario e en rede/Operacións lóxicas|capítulo ao respecto]] do libro de [[Sistemas informáticos multiusuario e en rede]]. Son os seguintes:
*produtoProduto lóxico:, «<code>&</code>».
*:Por exemplo, a nivel binario, <code>1100 & 1010</code> dá como resultado <code>1000</code>.
*suma lóxica: <code>|</code>
*sumaSuma lóxica, exclusiva: «<code>^|</code>».
*:Por exemplo, a nivel binario, <code>1100 | 1010</code> dá como resultado <code>1110</code>.
*sumaSuma lóxica: exclusiva, «<code>|^</code>».
*:Por exemplo, a nivel binario, <code>1100 ^ 1010</code> dá como resultado <code>0110</code>.
 
Entre eles a prioridade é distinta, seguindo a orde en que están listados (con maior preferencia o que está máis arriba na lista).
Liña 179 ⟶ 196:
==Operadores lóxicos==
Son os seguintes:
*E, «<code>&&</code>», devolverá <code>1</code> se o valor das dúas expresións entre as que está é certo ─distinto de cero─, e <code>0</code> en caso contrario.
*e: <code>&&</code>
*Ou, «<code>||</code>», devolverá <code>1</code> se o valor de <em>algunha</em> das dúas expresións entre as que está é certo ─distinto de cero─, e <code>0</code> en caso contrario.
*ou: <code>||</code>
 
Cómpre comentar que nos casos en que unha das partes xa converte en certa unha expresión lóxica, o sistema actúa de maneira eficiente e ignora o resto da expresión. Hai que ter ollo, pois nalgúns casos pode resultar problemático.
 
==Operadores condicionais==
Liña 194 ⟶ 211:
*<code>+=</code>
*<code>-=</code>
*e: <code>&&<<=</code>
*ou: <code>||>>=</code>
*<code>&=</code>
*<code>^=</code>
Liña 207 ⟶ 226:
 
==Véxase tamén==
===Outros capítulos===
*Algunhas operacións teñen un [[{{BASEPAGENAME}}/Punteiros#Operacións|comportamento distinto cos punteiros]].