elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  [?] Operador binario "^"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: [?] Operador binario "^"  (Leído 10,452 veces)
enritter

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [?] Operador binario "^"
« Respuesta #10 en: 5 Julio 2010, 16:07 pm »

Gracias con eso creo que lo entiendo no sabria aplicarlo pero al menos tengo el concepto  ;D

Gracias por todo


En línea

Bb-7

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: [?] Operador binario "^"
« Respuesta #11 en: 5 Julio 2010, 16:26 pm »

Compara los bits de dos bytes y pone a 1 los que sean distintos. P. ej.:
235^143=100

235 -> 11101011
143 -> 10001111 ^
--------------------------
100 -> 01100100

Aparte de eso, también se puede usar como signo de exponenciación, como dice neptun0:
Código
  1. int i=2^2;
  2. printf("%d",i);
Código:
4

NOTA: Los ejemplos son de lenguaje C.


« Última modificación: 5 Julio 2010, 16:29 pm por Bb-7 » En línea





leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #12 en: 5 Julio 2010, 20:28 pm »

Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    signed int var = 2^3;
  5.    printf("%d\n", var);
  6.    return 0;
  7. }
  8.  

Código:
1

En C no funciona como signo de exponenciación, para eso está la función pow() definida en math.h.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #13 en: 5 Julio 2010, 20:40 pm »

Para exponenciacion se puede hacer una simple rutina de multiplicación reiterada:
Código
  1. unsigned long int elevara(unsigned long int base, unsigned long int exponente)
  2. {
  3. unsigned long int resultado;
  4. if(exponente==0){
  5. resultado=1;     //cualquier numero elevado a cero es 1(escepto 0)
  6. return resultado;
  7. }
  8. resultado= base;
  9. for(int i=1; i<exponente; i++){
  10. resultado=resultado*base;    //la potenciacion es una multiplicacion reiterada de la base por si misma
  11. }                             //elnumero de veces que indique el exponente.
  12. return resultado;
  13. }
Esta no si es muy buena pero la hice yo para un codigo mio.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #14 en: 5 Julio 2010, 22:42 pm »

Para exponenciacion se puede hacer una simple rutina de multiplicación reiterada:
Código
  1. unsigned long int elevara(unsigned long int base, unsigned long int exponente)
  2. {
  3. unsigned long int resultado;
  4. if(exponente==0){
  5. resultado=1;     //cualquier numero elevado a cero es 1(escepto 0)
  6. return resultado;
  7. }
  8. resultado= base;
  9. for(int i=1; i<exponente; i++){
  10. resultado=resultado*base;    //la potenciacion es una multiplicacion reiterada de la base por si misma
  11. }                             //elnumero de veces que indique el exponente.
  12. return resultado;
  13. }
Esta no si es muy buena pero la hice yo para un codigo mio.

Aquí hay un ligero error:
Código
  1. if(exponente==0){
  2. resultado=1;     //cualquier numero elevado a cero es 1(escepto 0)
  3. return resultado;
  4. }


Haces return dos veces.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #15 en: 6 Julio 2010, 15:31 pm »

Citar
Sentencia de retorno "return"
Esta sentencia sale de la función donde se encuentra y devuelve el control a la rutina que
la llamó, opcionalmente con un valor de retorno.
Realmente cuando se ejecuta la 1º se abandona la función, es dicir, nose puede ejecutar la 2ª.

Mira este ejemplo:
Código
  1. #include <iostream>
  2.  
  3. int funciondeprueba();
  4.  
  5. int main(){
  6. std::cout<<funciondeprueba()<<std::endl;
  7. }
  8.  
  9. int funciondeprueba(){
  10. return 1;
  11. return 2;
  12. return 3;
  13. }
Una vez que hace reurn 1; ya no puede hacer return 2; ni return 3;.
Por eso devuelve 1; :
Código:
tuket@tuket-desktop:~$ g++ pru.cpp
tuket@tuket-desktop:~$ ./a.out
1
tuket@tuket-desktop:~$
Es como cuando en ensamblador haces retn se abandona la funcion y ya no hace nada mas.
« Última modificación: 6 Julio 2010, 15:42 pm por tuket » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #16 en: 6 Julio 2010, 17:53 pm »

Citar
Sentencia de retorno "return"
Esta sentencia sale de la función donde se encuentra y devuelve el control a la rutina que
la llamó, opcionalmente con un valor de retorno.
Realmente cuando se ejecuta la 1º se abandona la función, es dicir, nose puede ejecutar la 2ª.

Mira este ejemplo:
Código
  1. #include <iostream>
  2.  
  3. int funciondeprueba();
  4.  
  5. int main(){
  6. std::cout<<funciondeprueba()<<std::endl;
  7. }
  8.  
  9. int funciondeprueba(){
  10. return 1;
  11. return 2;
  12. return 3;
  13. }
Una vez que hace reurn 1; ya no puede hacer return 2; ni return 3;.
Por eso devuelve 1; :
Código:
tuket@tuket-desktop:~$ g++ pru.cpp
tuket@tuket-desktop:~$ ./a.out
1
tuket@tuket-desktop:~$
Es como cuando en ensamblador haces retn se abandona la funcion y ya no hace nada mas.

¿Y luego?

No le veo el caso de que hayas puesto otro return, porque esos return' s están dentro del IF, así que sí es error, por lo menos conceptual.

No le hallo sentido a tu replica.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #17 en: 6 Julio 2010, 18:47 pm »

mira esto

Código
  1. if (edad > 18)
  2.   return "mayor";
  3. else
  4.   return "menor";
  5.  

Entiendes, se pueden poner cuantos return quieras......... solo depende de las opciones que quieras devolver!
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #18 en: 6 Julio 2010, 18:57 pm »

mira esto

Código
  1. if (edad > 18)
  2.   return "mayor";
  3. else
  4.   return "menor";
  5.  

Entiendes, se pueden poner cuantos return quieras......... solo depende de las opciones que quieras devolver!

Entiendo, claro.

Ya ví mi error, aquí equivocadamente vi dos sentencias return:

Código
  1. if(exponente==0){
  2. resultado=1;     //cualquier numero elevado a cero es 1(escepto 0)
  3. return resultado;
  4. }

Por eso reclamé.

En todo caso esto no tiene fundamento:

Código
  1. int funciondeprueba(){
  2. return 1;
  3. return 2;
  4. return 3;
  5. }

Si la función es llamada siempre devolvería 1, no hay por qué poner los otros dos returns.

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: [?] Operador binario "^"
« Respuesta #19 en: 6 Julio 2010, 21:01 pm »

Ya lo se, era un ejemplo para demostrar justamente eso  XD
Por cierto raul338, un return no puede devolver una cadena de carácteres, tal vez sin comitas...
« Última modificación: 6 Julio 2010, 21:14 pm por tuket » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines