C/Operadores: Diferenzas entre revisións
Contido eliminado Contido engadido
Completado co contido da versión en inglés. |
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:
*
*
*
*
==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:
*
*
==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:
*
*:Por exemplo, a nivel binario, <code>1100 & 1010</code> dá como resultado <code>1000</code>.
*suma lóxica: <code>|</code>▼
*
*:Por exemplo, a nivel binario, <code>1100 | 1010</code> dá como resultado <code>1110</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>
*<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]].
|