Ayuda con el operador NOT en PASCAL

Edgar8A

Bovino maduro
#1
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.
A continuación les pego textualmente lo que dice en el libro

"program BitOp;
const
a = 67;
begin
writeln('La variable a vale ', a);
writeln(' El complemento de a es: ', not(a));
end.

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.
 

Edgar8A

Bovino maduro
#2
aun existe alguien que use Pascal?
Veo que no soy el único que esta comenzado en el área de programación.
Te explicare porque estoy aprendiendo pascal.

Primero: porque considero que me ayudara a comprender los conceptos básicos de la programación.
Segundo: Si aprendo Pascal, Delphi se me haría mucho más fácil, ya que Delphi desciende de Pascal, ya que posee idéntica sintaxis.

Mi idea es de ir de menor a mayor. O sea que quiero seguir la curva de aprendizaje.
Es cierto podría irme de lleno a Delphi, pero no solidificaría los conceptos más básicos.
Y de echo de poder puedo comenzar con Delphi, pero pondría una barrera conceptual y práctica en la que necesitaría de conceptos previos.

Por otra parte, considero que para cualquiera que sepa programar en otro lenguaje podría ayudarme con este problema ya que lo que deseo saber es como es que sale ese -68, no es por fuerza que sea para el lenguaje pascal, ya que los operadores se pueden utilizar para operaciones entre bits.

¿Tú podrías ayudarme?
 

pixeldog

Bovino adolescente
#3
Edgar, tu duda tiene que ver con aritmética binaria (que atañe a Pascal tanto como a cualquier otro lenguaje).

El detalle de tu pregunta está en que, si bien el primer bit encendido indica que el valor será negativo (cuando la serie de bits se interpretan como números con signo), el resto de los bits no se interpretan como su contraparte positiva. Aquí te lo explican mejor de lo que yo podría hacerlo: http://es.wikipedia.org/wiki/Complemento_a_dos

Respecto a Pascal, es un lenguaje, en tanto que Delphi es una implementación del Pascal (un programa que te permite crear programas en lenguaje Pascal). Quien usa Delphi, usa Pascal, aunque puedes usar Pascal sin usar Delphi. Por lo que comentas, parece ser tu caso (hay diversas implementaciones del Pascal, aunque la más "conocida" es Delphi).

Entiendo que Peskapan se refiere a que Pascal (incluida su implementación en Delphi) se usa cada vez menos en comparación con otros lenguajes de programación (como C#, ActionScript o JavaScript). Personalmente me inicié con Pascal y me fascina, pero reconozco que actualmente el lenguaje es poco soportado (las pocas empresas u organizaciones que lo respaldan dejan mucho qué desear). Si tu meta es sólo el aprendizaje por amor al arte, está bien Pascal, es un lenguaje muy didáctico. Pero si lo que quieres es luego desarrollar aplicaciones profesionales, te recomiendo C#. No digo que con Delphi no puedas desarrollar aplicaciones profesionales, sino que otras opciones tienen un futuro más prometedor. Hay incluso quienes piensan que Delphi está muriendo, te dejo el link de una página donde se habla del tema (en inglés, pero ahí tienes el Google Translate, en caso de que lo requieras): http://delphi.about.com/b/2005/03/27/is-delphi-dead-or-dying.htm

¡Suerte!
 

Edgar8A

Bovino maduro
#4
Edgar, tu duda tiene que ver con aritmética binaria (que atañe a Pascal tanto como a cualquier otro lenguaje).

El detalle de tu pregunta está en que, si bien el primer bit encendido indica que el valor será negativo (cuando la serie de bits se interpretan como números con signo), el resto de los bits no se interpretan como su contraparte positiva. Aquí te lo explican mejor de lo que yo podría hacerlo: http://es.wikipedia.org/wiki/Complemento_a_dos

[/url]
¡Suerte!
Gracias por tu ayuda. Te cuento, que ya había entrado anteriormente a esa página y aplique la formula y no me dio el mentado -68.
Además te quiero agradecer lo de C#. Estaba viendo C++ también, pero mejor decidi pascal para tomar mejor bases. Y si quiero despues seguir con otro lenguaje, pero como te vuelvo a repetir tome pascal, para comenzar a tomar bases.
Gracias de nuevo por tu respuesta, haber si logro entender en si lo del -68.
 

pixeldog

Bovino adolescente
#5
Por cierto, si te interesa C#, está por empezar un curso en línea gratuito impartido por la Universidad de Colorado a través de Corusera.org. Este curso ( https://www.coursera.org/course/gameprogramming ) se orienta hacia los videojuegos, pero está dirigido a principiantes, así que calificas. No sé si conozcas Coursera.org, es una organización en torno a la cual se reúnen las principales universidades del mundo para ofrecer gratuitamente cursos académicos dirigidos a la comunidad mundial de Internautas, una maravilla muy recomendable.

Ahí está el tip por si te sirve a ti o a alguien que pase por aquí.
 

Edgar8A

Bovino maduro
#6
Por cierto, si te interesa C#, está por empezar un curso en línea gratuito impartido por la Universidad de Colorado a través de Corusera.org. Este curso ( https://www.coursera.org/course/gameprogramming ) se orienta hacia los videojuegos, pero está dirigido a principiantes, así que calificas. No sé si conozcas Coursera.org, es una organización en torno a la cual se reúnen las principales universidades del mundo para ofrecer gratuitamente cursos académicos dirigidos a la comunidad mundial de Internautas, una maravilla muy recomendable.

Ahí está el tip por si te sirve a ti o a alguien que pase por aquí.
Gracias por la información, la tomare muy en cuenta. Y nuevamente gracias por tus respuestas, me han servido de mucha ayuda. Saludos.
 
Arriba