¿Por qué la programación se basa en uno y cero cuando, lógicamente, solo necesitas cero (‘nuestro mundo’ se basa solo en 0)?

Gracias por la A2A.

Los sistemas numéricos tienen bases. Usamos la base 10 generalmente y las computadoras usan la base 2 internamente. La base 2 es la base más simple, utilizando solo dos dígitos, 0 y 1, que pueden representarse electrónicamente como pulsos de baja y alta tensión, cortos o largos (en un cable o señal de radio), de alta o baja frecuencia (en un sistema modulado). ), etc.

El número de dígitos que necesita para representar un número n en la base b es logb (n) + 1, redondeado hacia abajo. Entonces, por ejemplo, el número de dígitos base 2 (bits binarios) necesarios para representar el número 58 en la base 2 es log2 (68) + 1 = 7 bits (58 decimal = binario 111010). Ahora aquí está la cosa: si solo tiene un dígito (0), entonces está tratando de representar cosas en la base 1. No existe tal cosa como la base 1 . Si tiene alguna duda, no es que el log1 (n) sea infinito , por lo que se necesitaría un número infinito de dígitos para representar cualquier número en la base 1. Cualquier intento de crear un sistema que distinga entre dos cadenas finitas de números de base 1 necesita confiar en otro estado, un valor distinto de cero, para decirle cuándo finaliza la secuencia. Una vez que tienes eso, has derrotado tu objetivo de tener solo ceros.

Su ejemplo de usar solo el cero y los relojes confunde el concepto de 0 y 1 con una representación específica de 0 y 1. Como dije al principio, puede representar 0 y 1 en muchas formas diferentes; Los voltajes son solo una forma. Su secuencia de ceros y tics de reloj es solo una forma diferente de representar 0 y 1. Si tiene cero, debe tener un no cero. Usar una marca de reloj para representar el no cero no cambia el hecho de que usted haya representado el no cero; no ha creado realmente un sistema de programación de solo cero. La única diferencia entre su sistema y el sistema binario común utilizado en las computadoras es que su sistema es innecesariamente complejo.

Puede que no lo sepa, pero codificó dos valores.

¡Usaste el espacio!

Si elimina la cuadrícula, tendría que inventar un símbolo para decir “esta celda estaba vacía”. Podrías haber elegido “-” y describirte tu segunda línea como:

0–000–0

Ahora, podría cambiar “-” por “1”, y obtendría:

0100010

Ahora, veamos la máquina de Turing, Wikipedia, que codifica el programa en una cinta. Tiene la información espacial que tiene en su ejemplo. Necesita diferenciar el estado predeterminado y todos los demás estados.

0 es un símbolo para “nada aquí” y otros valores que escribimos en decimal (pero que pueden escribirse de la forma que desee, como conjuntos de potencias) tienen varios significados.

¡El “0” es algo que vino mucho después de los otros números! “1” es fácil de entender, es la unidad. Cualquier cosa mayor que “1” es “1” varias veces.

Si usamos rocas, puedo “escribir” varios números:
1:.
7: …….
42: ……. ……. ……. ……. ……. …….
100: ………. ………. ………. ………. ………. ………. ………. ………. ………. ……….

Pero aquí es cómo escribiría 0:
0:

Tenemos un problema grave. Si no tuviera “0:”, ¿cómo sabría que quería escribir 0?

Eso es lo difícil que era usar 0. Afortunadamente, el 0 no fue necesario porque puede ser reemplazado por la igualdad: “Si me tienes 5 dólares y me das 5, me diste lo que me perteneces”.

Entonces, en la práctica, podríamos olvidar el “0”. ¡Es un concepto bastante nuevo! El origen del cero

El número más importante es la unidad. Todo puede derivarse de ello. Incluso cero.

1 – 1 = 0

Y obtener el sucesor de un número es sumar 1.

La humanidad tomó más de 40,000 para diseñar ese cero. 40,000 años! (Modernidad del comportamiento – Wikipedia)

Si tiene que elegir un número, sería “1”. Pero solo, no llegará muy lejos. Estarías en la misma situación que 500BC!


(No es parte de esa respuesta – Meta cosa)

Siempre odié la historia, pero siempre me gustó ver qué, por qué y cómo lo hicimos antes. Y esto es historia, pero no es de lo que la gente suele pensar.

Tales preguntas muestran lo útil que es tener conciencia de nuestra evolución. La historia nos muestra claramente el estado de “0”. El hecho de que este es un concepto abrumador, incluso si la mayoría de las personas no entiende que el “0” sea difícil o incluso interesante.

Lo que me parece irónico es la sensación de que, para el póster original, aparece al revés. De una forma totalmente antinatural, ¡pero le resulta natural! Eso solo es muy interesante en un marco psicosocial. Cómo la instrucción puede llevar a un individuo a elegir algo como “común” y construir un universo a su alrededor. Más interesante, ese universo tiene una gran debilidad, pero él está ciego a ellos.

¡Esta es la metainformación que hace que este tipo de pregunta sea una razón para ir a la mente de las personas!

Esto no tiene nada que ver con la estupidez y la compañía. Incluso es bastante inteligente reconstruir las cosas y hacer tal hipótesis.

Si programáramos utilizando solo ceros, sería muy difícil representar todos los datos e instrucciones de programa que necesitamos utilizar para que nuestros programas funcionen.

Tendrías que tener un método para dividir un conjunto de ceros de otro. ¿Cómo notaría la diferencia entre 000 y 0000? Tendría que usar espacios para separarlos, pero ahora tiene dos conjuntos de información, ceros y espacios en blanco.

Además, ¿cómo convertirías un montón de ceros en caracteres ascii? 01000001 hace la letra mayúscula A, mientras que 01100001 hace la minúscula a. Una pequeña diferencia. Podríamos necesitar 65 ceros para representar la A y 97 ceros para representar la a.

Simplemente tiene más sentido usar unos y ceros que usar ceros y espacios en blanco.

¿Por qué la programación se basa en uno y cero cuando, lógicamente, solo necesitas cero (“nuestro mundo” se basa solo en 0)?

Ehm que

Está bien, vamos a intentarlo. Hay al menos dos decisiones lógicas que puedes tomar en una situación. Haces algo o no lo haces. Este es un booleano. Es verdadero o falso , es 1 o 0 , es ying o yang . No se puede describir nada con un solo dígito. Necesita opciones y el cuerpo matemático más pequeño existente es el cuerpo que contiene 0 y 1.

Cuando necesite más de una decisión, puede decodificarla con algunos bloques que contienen varios de estos valores. Ahora podrías decir, pero podría crear varios bloques solo con cero. Pero, ¿cómo distinguir dónde terminan los bloques? Dejar algo vacío? Pero está simplemente vacío porque está vacío o porque usted quería que estuviera vacío. Solo un valor no es suficiente. Dos valores es la cantidad mínima. Pero legalmente podrías preguntar por qué dos y no tres valores.

Esta es mi respuesta incluyendo 1s y 0s:

Necesita tanto 1s como 0s para representar datos, porque sin 1s, no hay nada para diferenciar los 0s entre sí. Por ejemplo, ¿cómo le harías saber a la computadora que debemos “pausar”? ¿O cómo podría diferenciar entre los cambios de estado? Al final, los cambios de estado todavía se representan como 1 internamente, incluso aunque no lo representen. Otra cosa a tener en cuenta es: sería increíblemente difícil de analizar.

01011001 01101111 01110101 00100000 01101110 01100101 01100101 01100100 00100000 01100010 01101111 01110100 01101000 00100000 00110001 01110011 00100000 01100001 01101110 01100100 00100000 00110000 01110011 00100000 01110100 01101111 00100000 01110010 01100101 01110000 01110010 01100101 01110011 01100101 01101110 01110100 00100000 01100100 01100001 01110100 01100001 00101100 00100000 01100010 01100101 01100011 01100001 01110101 01110011 01100101 00100000 01110111 01101001 01110100 01101000 01101111 01110101 01110100 00100000 00110001 01110011 00101100 00100000 01110100 01101000 01100101 01110010 01100101 00100000 01101001 01110011 00100000 01101110 01101111 01110100 01101000 01101001 01101110 01100111 00100000 01110100 01101111 00100000 01100100 01101001 01100110 01100110 01100101 01110010 01100101 01101110 01110100 01101001 01100001 01110100 01100101 00100000 00110000 01110011 00100000 01100110 01110010 01101111 01101101 00100000 01100101 01100001 01100011 01101000 00100000 01101111 0 1110100 01101000 01100101 01110010 00101110 00100000 01000110 01101111 01110010 00100000 01100101 01111000 01100001 01101101 01110000 01101100 01100101 00101100 00100000 01101000 01101111 01110111 00100000 01110111 01101111 01110101 01101100 01100100 00100000 01111001 01101111 01110101 00100000 01101100 01100101 01110100 00100000 01110100 01101000 01100101 00100000 01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00100000 01101011 01101110 01101111 01110111 00100000 01110100 01101000 01100001 01110100 00100000 01110111 01100101 00100000 01110011 01101000 01101111 01110101 01101100 01100100 00100000 11100010 10000000 10011100 01110000 01100001 01110101 01110011 01100101 11100010 10000000 10011101 00111111 00100000 01001111 01110010 00100000 01101000 01101111 01110111 00100000 01110111 01101111 01110101 01101100 01100100 00100000 01111001 01101111 01110101 00100000 01100010 01100101 00100000 01100001 01100010 01101100 01100101 00100000 01110100 01101111 00100000 01 100100 01101001 01100110 01100110 01100101 01110010 01100101 01101110 01110100 01101001 01100001 01110100 01100101 00100000 01100010 01100101 01110100 01110111 01100101 01100101 01101110 00100000 01110011 01110100 01100001 01110100 01100101 00100000 01100011 01101000 01100001 01101110 01100111 01100101 01110011 00111111 00100000 01001001 01101110 00100000 01110100 01101000 01100101 00100000 01100101 01101110 01100100 00101100 00100000 01110100 01101000 01100101 00100000 01110011 01110100 01100001 01110100 01100101 00100000 01100011 01101000 01100001 01101110 01100111 01100101 01110011 00100000 01100001 01110010 01100101 00100000 01110011 01110100 01101001 01101100 01101100 00100000 01110010 01100101 01110000 01110010 01100101 01110011 01100101 01101110 01110100 01100101 01100100 00100000 01100001 01110011 00100000 00110001 00100000 01101001 01101110 01110100 01100101 01110010 01101110 01100001 01101100 01101100 01111001 00101100 00100000 01100101 01110110 01100101 01101110 00100000 011 10100 01101000 01101111 01110101 01100111 01101000 00100000 01101001 01110100 00100000 01101101 01101001 01100111 01101000 01110100 00100000 01101110 01101111 01110100 00100000 01100010 01100101 00100000 01110010 01100101 01110000 01110010 01100101 01110011 01100101 01101110 01110100 00100000 01101001 01110100 00101110 00100000 01000001 01101110 01101111 01110100 01101000 01100101 01110010 00100000 01110100 01101000 01101001 01101110 01100111 00100000 01110100 01101111 00100000 01101110 01101111 01110100 01100101 00100000 01101001 01110011 00111010 00100000 01101001 01110100 00100000 01110111 01101111 01110101 01101100 01100100 00100000 01100010 01100101 00100000 01101001 01101110 01100011 01110010 01100101 01100100 01101001 01100010 01101100 01111001 00100000 01100100 01101001 01100110 01100110 01101001 01100011 01110101 01101100 01110100 00100000 01110100 01101111 00100000 01110000 01100001 01110010 01110011 01100101 00101110 00100000 00001101 00001010

Esta es mi respuesta solo usando 0s:

Binario:

Con solo ceros a nuestra disposición, no podemos hacer elecciones. O tal vez podríamos, pero cada elección tendría el mismo resultado. No importa, el resultado es el mismo. Cada vez. Por lo tanto, el concepto de bucle y ramificación, que es un componente principal de un programa, se pierde para nosotros. Los números, el texto, los colores y otras salidas observables tendrían el mismo patrón: 0, seguido de más ceros, por lo que no tendríamos forma de distinguir ninguna salida de otra.

La verdad es que los programas y la programación no están basados ​​en unos y ceros. La representación interna de los datos con los que operamos y la electrónica que hace el trabajo son de base binaria. Hay ciertos casos en que la naturaleza binaria de la computadora está expuesta al programador, pero casi nunca está necesariamente expuesta al usuario final.