Si todos los códigos de computadora son 0s y 1s, ¿cómo reconoce y entiende la computadora estos símbolos en primer lugar?

Es el orden en que los 0 y 1 se agrupan y procesan lo que los convierte de 0 y 1 al azar en instrucciones que la CPU puede llevar a cabo. Una CPU está programada para comprender una serie de instrucciones (un “conjunto de instrucciones”) para llevar a cabo funciones básicas como “tomar estos dos números y agregarlos, y almacenar el resultado en este registro”, o “mover este número a este registro”. “, y así. Operaciones básicas de datos.

Esas operaciones predefinidas se representan, a nivel de lenguaje de máquina, como códigos de operación binarios como “00001010 00001011 00010110”, por ejemplo. Para ti, eso parece una serie aleatoria de 0s y 1s, pero para la CPU podría representar una instrucción como “Mueve el número 11 al registro AX” (no … Solo lo estoy inventando como ilustración).

Los programas que desarrolle se representan en última instancia en la memoria como una serie de instrucciones que llevan a cabo operaciones comprendidas por la CPU de destino. Cuando se compilan los programas, traducen el código fuente legible por humanos que usted escribe a un lenguaje de máquina comprendido por la CPU que ejecuta su programa ejecutable. Así es como su código fuente eventualmente se convierte en una serie de 0s y 1s.

Y a un nivel muy bajo, estos 0s y 1s se representan como voltajes off (0s) y on (1s), como se señala en otras respuestas.

En primer lugar, ayúdame a mejorar esta respuesta señalando cualquier cosa que no esté del todo clara y que necesite más elaboración.

De hecho, los procesadores de alta complejidad y alto rendimiento, como los que se encuentran en las PC, ejecutan un programa llamado “microcódigo” que interpreta las instrucciones de su software. Pero para que eso suceda, debe haber una arquitectura subyacente que pueda ejecutar algunas instrucciones para comenzar, y solo investiguemos cómo se haría esto. La operación básica de un procesador es leer un flujo de comandos desde la memoria o algún tipo de entrada externa y ejecutarlos en orden.

El primer bloque de construcción básico será una función, algo que puede tomar un número binario, una colección de bits en la entrada y transformarlo en un número binario diferente en la salida, y hay numerosas formas de crearlos, pero pueden todo se expresará como una tabla de consulta, que se traduce directamente en, por ejemplo, un circuito multiplexor. Esta no es necesariamente la forma en que enfocaría el diseño de una CPU real, porque para algunas tablas extremadamente útiles, como para la suma u otras operaciones, se conocen representaciones de hardware que ocupan significativamente menos transistores, pero como compensación, introducen un poco de retraso de propagación entre la entrada y la salida.

El segundo ingrediente vital es una señal de reloj externa estable, como un péndulo en un reloj real, que es simplemente una señal de un solo bit que sigue cambiando entre lógica-0 y lógica-1 a intervalos regulares. El intervalo debe elegirse de tal manera que sea más largo que el retraso de propagación en todas las funciones que tendrá en su circuito.

El tercer ingrediente importante es algo de memoria, un registro, por ejemplo, una colección de chanclas. Tenga en cuenta que puede conectarles una señal de reloj.

Lo que le dan estos ingredientes es la capacidad de implementar una máquina de estado en hardware. Con esto, puede crear un dispositivo que consuma las instrucciones y sus argumentos en secuencia y los ejecute. De hecho, solo este conocimiento debería ser casi suficiente para comprender o incluso reconstruir a partir de bloques de construcción básicos de nivel de transistor, nivel de puerta o nivel de función, una CPU simple de los años 70, como el 6502 que ha alimentado muchos de los Las computadoras domésticas y consolas de juegos más populares a lo largo de los años 80 y todavía se pueden encontrar integradas en muchos productos de consumo.

No, las computadoras no leen “código”. Solo reciben instrucciones en forma de patrones de voltajes, que pensamos simbólicamente como patrones de 1 y 0.
Las computadoras nunca tratan con el simbolismo, porque no tienen mentes, por lo que no son capaces de hacerlo.

El código que escribe un programador no es el que leerá la computadora. Este código es para un compilador, un programa que escucha lo que el programador le dice y luego produce instrucciones de la máquina.

El “código” es un sistema de símbolos que representan otros símbolos. Es completamente conceptual y solo existe en las mentes, no puede existir en la realidad.

Sin embargo, tenga en cuenta que los lenguajes de programación modernos no son “código”, son lenguajes reales, incluso si son muy simples.
Cuando escribimos C o C ++, por ejemplo, realmente estamos escribiendo en un lenguaje que un compilador es programador para entender. La mayor parte de lo que escribimos nunca se traduce directamente en algo que una computadora realmente hará, sino que solo está ahí para explicarle las cosas al compilador, de modo que el compilador pueda entender lo que entendemos por cosas.

Sin embargo, “ensamblaje” podría denominarse “código”, ya que tienen palabras de código simples que se refieren directamente a una instrucción de máquina, que es un símbolo de los patrones de voltaje que hacen que la computadora haga algo específico.

“Código” es símbolos de segundo nivelim. Un símbolo que se refiere a un símbolo, en lugar de referirse a una cosa o un concepto. Por ejemplo, la letra “A” podría referirse al número “1” en algún sistema de codificación.
Liekwise, “C” se refiere a centígrados, que se refiere al concepto real.
símbolo (Código) -> símbolo-> cosa real.

Las computadoras no pueden entender el simbolismo, se ven obligadas a actuar de acuerdo con la información que reciben, y no pueden pensar que esa entrada represente potencialmente algo arbitrariamente.
Y eso también significa que son aún menos capaces de entender el “código”, que es el simbolismo de segundo nivel.

La implementación de computadoras (CPU y lógica externa) se realiza utilizando electrónica digital booleana. La función de esa lógica combina los 1s y 0s (dígitos binarios o bits ) de manera que le permite realizar la lógica combinacional y la lógica secuencial. Los circuitos y dispositivos que conforman el resto de la computadora están ahí para transformar la implementación digital en cosas que son útiles para el mundo real; monitores que muestran glifos y gráficos combinando muchos 1s y 0s en conjuntos de píxeles, ratones y teclados que traducen interruptores y movimiento a 1s y 0s en secuencias que se envían a la CPU, etc.

La clave es que las combinaciones de 1s y 0s son las que permiten que se lleven a cabo acciones, entradas y salidas más complejas. Los lenguajes de programación, incluso hasta el bajo nivel del lenguaje ensamblador, proporcionan abstracciones comprensibles para el ser humano de las combinaciones que permiten que los programas se escriban de manera eficiente, sin tener que comprender las minucias de las funciones de nivel más bajo. Los diseñadores de la computadora y sus componentes sí entienden estas cosas y cómo combinar las partes que conforman una computadora que funciona. Los diseñadores de CPU pueden usar programas de nivel extremadamente bajo en bloques lógicos dentro de la CPU, o pueden implementarse como autómatas o máquinas de estado que simplemente transforman sus salidas de acuerdo con las combinaciones de bits en sus entradas, de acuerdo con el estado en el que se encuentran. paso dado en su función. La noción de ‘pasos’ es lo que explica el uso de relojes de CPU que se utilizan para incrementar la lógica de un estado a otro. Esto se convierte en la naturaleza fundamental de los programas como secuencias, también conocidas como ejecución de programas.

Cuando la gente dice que las computadoras solo reconocen 0 y 1, lo que realmente están hablando son los niveles de voltaje. Por lo general, 3.3 o 5 voltios para (1) y 0 voltios para (0)

Ver: ¿Cómo funciona una puerta lógica en un microchip? Una puerta parece un dispositivo que debe abrirse y cerrarse, pero los microchips están grabados en obleas de silicio que no tienen partes móviles. Entonces, ¿cómo se puede abrir y cerrar la puerta?

Se está investigando el uso de la fotónica en lugar de la electrónica, pero todavía no estamos allí.

He aquí por qué todavía no tenemos computación basada en la luz: ExtremeTech

¿Computadoras que funcionan con luz? Proyecto de investigación podría ayudar a crear nuevos dispositivos fotónicos

Y las computadoras cuánticas son diferentes nuevamente Dentro del extraño mundo de las computadoras cuánticas

Un qubit puede considerarse como una esfera imaginaria. Mientras que un bit clásico puede estar en dos estados, en cualquiera de los dos polos de la esfera, un qubit puede ser cualquier punto de la esfera. Esto significa que una computadora que usa estos bits puede almacenar una gran cantidad de información usando menos energía que una computadora clásica.

No. El programa establece condiciones en la CPU que hacen que haga algo. Digamos que es un complemento inmediato. La CPU leería el siguiente byte y lo agregaría a cualquier registro (interno de la CPU) al que se agrega. Ese tipo de “programación”, sabiendo que una disposición particular de 1s y 0s significa agregar inmediatamente, es parte del hardware. Supongo que se podría decir que el diseño de la CPU es su “programación” básica, pero una vez que se hace, hace lo que se supone que debe hacer para una disposición particular de 1s y 0s, y eso es lo que nos permite escribir un programa para, digamos, un navegador web que se convirtió en 1s y 0s para ejecutarse en la computadora y le permite leer esto.

La primera computadora en el mundo usó una bombilla … si la luz estaba apagada … o la luz estaba encendida era cómo procesaba los datos … La luz no cambió … todavía funciona de la misma manera … 0 = Apagado y 1 = Encendido …

Entonces tienes procesos … si esto, entonces haz eso … basado en todos esos 1 y 0 y todo hecho a la velocidad de la Luz (electricidad)

More Interesting

¿Cómo calcula Google la distancia entre dos lugares en Google Maps?

¿Cuál es el problema de algoritmo más difícil en LeetCode?

¿El algoritmo de Dios realmente funciona en el Cubo de Rubik 3x3x3?

¿Cuáles son los algoritmos más utilizados en los que puedo confiar para mejorar mis habilidades de resolución de problemas?

¿El hashing criptográfico es una buena manera de identificar imágenes de forma exclusiva?

¿Cuál es el número mínimo y máximo de materias que ofrece un estudiante en una escuela secundaria estadounidense?

¿Cuáles son algunos de los diferentes casos que debería considerar usar matrices bidimensionales sobre matrices unidimensionales en Java?

¿Por qué no puedo resolver la subsecuencia creciente más larga simplemente ordenando la secuencia y luego iterando a través de cada elemento asegurándome de que la secuencia siempre esté aumentando?

Cómo llegar a la lógica para construir un método de impresión inversa que imprima los nodos en una lista vinculada usando un enfoque recursivo usando Java

¿Es posible realizar operaciones de alta frecuencia con la plataforma Zerodha?

¿Qué es la recurrencia en análisis de diseño y algoritmos?

¿Cómo funciona el algoritmo de vista en Quora?

¿Debo aprender a clasificar?

¿Cuál es el tiempo de entrenamiento promedio y el tiempo de prueba de los algoritmos de aprendizaje automático más comunes?

¿Cómo pueden uno y qué algoritmos podrían usarse para entrenar una red neuronal profunda con una cantidad limitada de datos desaprender sus representaciones mal aprendidas?