Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: m@o_614 en 22 Abril 2014, 23:21 pm



Título: operador ~
Publicado por: m@o_614 en 22 Abril 2014, 23:21 pm
Saludos

tengo una duda a acerca de si el operador  ~ que se usa para obtener el complemento a 1 de un numero, puede usarse solo con números decimales o si tambien los puede usar con numeros binarios??


Título: Re: operador ~
Publicado por: ivancea96 en 22 Abril 2014, 23:25 pm
A qué te refieres con números binarios? Si hablas del tipo "bool", sí, lo puedes usar.


Título: Re: operador ~
Publicado por: amchacon en 22 Abril 2014, 23:44 pm
Hasta donde se, se puede usar con cualquier dato primitivo (float incluido).


Título: Re: operador ~
Publicado por: Blaster en 23 Abril 2014, 00:22 am
Hasta donde se, se puede usar con cualquier dato primitivo (float incluido).

Los operadores de bit solo trabajan con el tipo entero int, que puede ser de cualquiera de sus variantes (short, long, signed o unsigned) y enumeraciones
El complemento a uno es el unico operador unario los demas son todos binarios este operador lo que hace es invertir cada bit del número.

Saludos..


Título: Re: operador ~
Publicado por: amchacon en 23 Abril 2014, 01:35 am
Cierto, los floats no van.

El complemento a uno es el unico operador unario los demas son todos binarios este operador lo que hace es invertir cada bit del número.

Saludos..
¿Que hay de la negación lógica (!), de la indirreción (*), de la referencia (&), del sizeof y del delete? ;D


Título: Re: operador ~
Publicado por: Blaster en 23 Abril 2014, 01:46 am
¿Que hay de la negación lógica (!), de la indirreción (*), de la referencia (&), del sizeof y del delete? ;D
Exacto no supe expresarme bien, la afirmación la hice pensando unicamente en los operadores de bit

Saludos..


Título: Re: operador ~
Publicado por: m@o_614 en 23 Abril 2014, 04:21 am
gracias por sus respuestas, les preguntaba de este operador porque estoy haciendo un código en el que tengo una cadena tipo "01011001" y tengo sacarle el complemento a 1, o sea cambiar unos por ceros y ceros por unos. Yo pense que esto lo podia hacer con el operador ~, pero me dicen que es solo para enteros.

No se de que otra manera podria hacer esto, en el código lo que tengo al principio es una cadena que representa un número negativo como "-12"  y lo tengo que convertir a binario, primero lo tengo que convertir a numero (porque es una cadena) y después para obtener el binario de 5 digitos tengo que hacer el complemento a 1 primero y el complemento a dos despues, pero primero tengo que ir por pasos y sacar el complemento a 1.