Pascal/Turbo Pascal - Duda en Operador Not

   
Vista:

Duda en Operador Not

Publicado por Edgar (1 intervención) el 09/09/2013 20:06:21
Tengan todos un buen día. Le agradezco a cada uno de ustedes que se toma la molestia de responder a las dudas de los diferentes participantes de este foro.
El motivo de mi post, es para ver si alguno de ustedes podría sacarme de una duda, he estado queriendo aprender a programar en pascal con un libro, y por el momento iba todo bien. Hasta que me tope con algo que no me ha dejado pasar y buscando, buscando, me encontré con este foro.
A continuación les pego textualmente lo que dice en el libro

"Para entender esto, deberemos convertir al sistema binario el número:
67 = 0100 0011
- En primer lugar complementamos "0100 0011", cambiando los ceros por unos:
1011 1100 = -68"

Ok, ahora mi duda es:
¿Porqué 1011 1100 es = -68?
Yo sé que el primer uno que esta del lado izquierdo me da el signo negativo pero 011 1100 es 60, entonces tendría que ser -60.
Ya hice el programa en pascal y lo corrí, y si me da como respuesta -68, pero…
¿Como es que sale ese -68?
Muchas gracias por su tiempo y su ayuda. Un saludos y bendiciones a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda en Operador Not

Publicado por ramon (2072 intervenciones) el 11/09/2013 12:46:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[mira esto}
 program negacion;
 uses
   crt;
 
   begin
      writeln(not 67);
      readkey;
 
   end.
 
  { Mira esto nos devuelve -68 la forma es numero binario = 01000011 = 67;
   al realizar el not nos queda -68 puesto que al invertir el binario queda
   10111100 lo cual nos da un valor negativo en 128 si le quitamos los 60 positivos
   nos queda -68 mira esto te aclarara algo.
 
      128  64  32  16  8   4   2   1
       0       0    0     0   0   0   0   0
 
  67 = 0   1   0   0   0   0   1   1
 
 -68 = 1   0   1   1   1   1   0   0
 
     - 128 - (32 + 16 + 8 + 4) = 60 = -68
 
  ya que el valor es numero negativo. }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar