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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [Python] Duda de Operadores a nivel bit [Not(~)]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Duda de Operadores a nivel bit [Not(~)]  (Leído 4,345 veces)
evocal

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[Python] Duda de Operadores a nivel bit [Not(~)]
« en: 24 Noviembre 2012, 20:56 pm »

Buenas, estoy metiendome en el mundo de Python y ahora mismo estaba llegando a la parte de Operadores a nivel de bit. Pero me ha surgido un problema:

En el comando Not (~) yo entiendo que los numeros cambian segun sea en binario, por ejemplo:

~4 (100) segun lo que entiendo yo pasaria a  3(011), sin embargo me pasa a -5

Ya de por si me descoloca que me salga un numero negativo, pero no le encuentro sentido que 4 (100) pase a 5(101)

¿Alguien me puede explicar el error que cometo o realmente como es el comando not?

Saludos


En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [Python] Duda de Operadores a nivel bit [Not(~)]
« Respuesta #1 en: 25 Noviembre 2012, 00:03 am »

Creo que esto te responderá porque lo que estas haciendo es una operacion bit a bit.
cito a wikipedia.

Citar
NOT
A   NOT A
0   1
1   0
El NOT bit a bit, o bitwise, o complemento, es una operación unaria que realiza la negación lógica en cada bit, invirtiendo los bits del número, de tal manera que los ceros se convierten en 1 y viceversa. Por ejemplo:
NOT 10011
  = 01100
El NOT forma el complemento a uno de un valor binario dado.
En un número entero con signo en complemento a dos, el NOT da como resultado el inverso aditivo del número menos 1, es decir NOT x = -x - 1. Para obtener el complemento a dos de un número, se debe sumar 1 al resultado, dando el negativo del número. Esto equivale a un cambio de signo del número: +5 se convierte en -5, y -5 se convierte en +5.
Para los enteros sin signo, el complemento bit a bit es la “reflexión de espejo” del número a través del punto medio del rango del entero. Por ejemplo, para los enteros sin signo de 8 bits, NOT x = 255 - x, para los enteros sin signo de 16 bits, NOT x = 65535 - x, y en general, para los enteros sin signo de n bits, NOT x = (2n - 1) - x.


Saludos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda, operadores a nivel bit?
PHP
HardieVon 3 2,570 Último mensaje 19 Febrero 2009, 05:55 am
por HardieVon
Ejercicios Python! [Nivel:Principiante]
Ejercicios
kyps 6 21,319 Último mensaje 8 Abril 2010, 19:46 pm
por xyz0k
Operadores a nivel de bits (lenguaje C). « 1 2 »
Programación C/C++
NOB2014 16 10,256 Último mensaje 21 Marzo 2014, 15:16 pm
por Yoel Alejandro
Operadores de Incremento y Decremento en Python
Programación General
Ali Baba 3 15,239 Último mensaje 13 Septiembre 2017, 17:32 pm
por engel lex
Los operadores podrán bloquear el nivel de cobertura en Android P
Noticias
wolfbcn 1 1,832 Último mensaje 25 Diciembre 2017, 23:31 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines