ventajas tipos maquina lenguaje ejemplos desventajas caracteristicas binarios binario archivos encoding binary

encoding - tipos - Diferencia entre lenguaje de máquina, código binario y un archivo binario.



lenguaje maquina ventajas y desventajas (4)

El código de máquina y el binario son iguales: un sistema numérico con base 2, ya sea 1 o 0. Pero el código de máquina también puede expresarse en formato hexadecimal (hexadecimal) , un sistema numérico con base 16 . El sistema binario y el hex están muy relacionados entre sí, es fácil convertirlos de binario a hex y volver a convertir de hex a binario. Y porque el hex es mucho más legible y útil que el binario, a menudo se usa y se muestra. Por ejemplo, en la imagen de arriba en tu pregunta: ¡utiliza números hexadecimales!

Digamos que tiene la secuencia binaria 1001111000001010 (se puede convertir fácilmente a hexadecimal agrupando en bloques), cada bloque consta de cuatro bits.

1001 1110 0000 1010 => 9 14 0 10 which in hex becomes: 9E0A.

Se puede estar de acuerdo en que 9E0A es mucho más legible que el binario, y el hex es lo que ves en la imagen.

Estoy estudiando programación y en muchas fuentes veo los conceptos: "lenguaje de máquina", "código binario" y "archivo binario". La distinción entre estos tres no está clara para mí, porque según mi comprensión, el lenguaje de máquina significa el lenguaje en bruto que una computadora puede entender, es decir, secuencias de 0 y 1.

Ahora, si el lenguaje de máquina es una secuencia de 0s y 1s y el código binario también es una secuencia de 0s y 1s, ¿entonces lenguaje de máquina = código binario ?

¿Qué pasa con el archivo binario? ¿Qué es realmente un archivo binario? Para mí, la palabra "archivo binario" significa un archivo, que consiste en un código binario. Así por ejemplo, si mi archivo era:

010010101010010 010010100110100 010101100111010 010101010101011 010101010100101 010101010010111

¿Sería este un archivo binario? Si busco en Google un archivo binario y veo Wikipedia , veo esta imagen de ejemplo de un archivo binario que me confunde (¿no está en binario? ...)

¿Dónde está mi confusión? ¿Estoy mezclando la codificación de archivos aquí o qué? Si le preguntara a uno que MUESTRE qué es el lenguaje de máquina, el código binario y el archivo binario, ¿cuáles serían? =) Supongo que la distinción es demasiado abstracta para mí.

Gracias por cualquier ayuda! =)

ACTUALIZACIÓN :

En Python, por ejemplo, hay una frase en un tutorial E / S de archivos, que no entiendo: abre un archivo para leer solo en formato binario. ¿Qué significa leer un archivo en formato binario?


Estoy sinceramente sorprendido de no ver la información que estaba buscando, pero mirando atrás, creo que el título de este hilo no es del todo apropiado para la pregunta que el OP estaba haciendo.

Todos ustedes dicen "El Código de Máquina es un montón de números".

Claro, el "CÓDIGO" es un montón de números, pero lo que la gente se pregunta (supongo) es "¿qué está sucediendo físicamente?"

Soy bastante novato en lo que respecta a la programación, pero entiendo lo suficiente como para sentirme seguro al responder "aproximadamente" esta pregunta.

El código de máquina, al circuito real, no son números o valores. El código de la máquina es un grupo de compuertas de voltaje que están abiertas o cerradas, y dependiendo de a qué estén conectadas, una cierta luz parpadeará en un momento determinado, etc.

Supongo que el "código de máquina" dicta la ruta y el tiempo para señales eléctricas específicas que viajarán para llegar a su destino general.

Entonces, para 010101, 3 puertas de voltaje están cerradas (los 0), 3 están abiertas (los 1)

Sé que estoy cerca de la respuesta correcta aquí, pero también sé que es mucho más sofisticado, porque puedo imaginar lo que no sé.

010101 sería instrucciones fáciles para un circuito simple, pero lo que no puedo empezar a entender es cómo una computadora compleja procesa toda la información.

Así que supongo que vamos a descomponerlo?

Los procesadores x-bit indican cuántos bits puede procesar el procesador a la vez.

Un bit es 1 o 0, "On" o "Off", "Open" o "Closed"

de modo que los procesadores de 32 bits procesan "10101010 10101010 10101010 10101010" - esta cantidad de bits a la vez.

Un procesador es un "circuito integrado", que es como una placa de circuito compacta, que contiene resistencias / capacitores / transistores y algo de memoria. No estoy seguro de si los procesadores tienen resistores, pero sé que normalmente encontrará una tonelada de ellos ubicados alrededor del procesador real en la placa de circuito

De todos modos, un transistor es un interruptor por lo que si recibe un 1, envía corriente en una dirección, o si recibe un 0, enviará corriente en una dirección diferente ... (o algo así)

Así que imagino que a medida que avanza el código de la máquina ... el segmento de código que recibe el procesador cambia los canales de voltaje de tal manera que envía una señal a otra parte de la computadora (¿por qué crees que los procesadores tienen tantos pines?), Probablemente otro circuito integrado más especializado para una tarea específica. Ese circuito integrado recibe un fragmento de código, digamos de 2 a 4 bits 01 u 1100 o algo así, lo que define aún más dónde terminará el destino final de la señal, lo que podría estar directamente en el procesador, o posiblemente en alguna salida. dispositivo.

El código de máquina es una forma muy eficiente de tomar un circuito y conectarlo a una bombilla, y luego sacar esa bombilla del circuito y cambiar el circuito a una bombilla diferente

La memoria en una computadora es muy necesaria porque, de lo contrario, para hacer que su computadora haga algo, debe escribir todo (en código de máquina). En su lugar, todos los 1 y 0 se almacenan dentro de algún dispositivo de almacenamiento, ya sea un disco duro giratorio con un pin de cabeza magnética que ''lee'' 1 o 0 según la carga del disco, o un dispositivo de memoria flash que usa una serie de transistores, donde el envío de un voltaje a través de provoca 1 y 0 (no sé cómo funciona la memoria flash)

Afortunadamente, alguien se tomó el tiempo para idear un sistema de números base diferente para la programación (hex) y una forma de compilar esos números (traducirlos) de nuevo a binarios. Y luego todos los programas de software se han ramificado desde allí.

Cada tecla del teclado crea una señal específica en binario que se traduce en un montón de interruptores que se activan o desactivan usando ciertos voltajes, de modo que se pueda correr una corriente a través de los píxeles individuales específicos en su pantalla que crean "1" o "0". "o" F ", o todos los caracteres de esta publicación.

Así que me pregunto, ¿cómo hace un programa ''programa'' o ''hace'' que la computadora ''haga'' algo ... Más bien, ¿cómo compila un compilador un programa de un código diferente de binario? Es difícil pensar en eso ahora porque estoy extremadamente cansado (así que no lo intentaré), sino también porque TODO lo que haces en una computadora es debido a algún programa. Hay programas (procesos) en ejecución activa en el administrador de tareas. Éstos mantienen la pantalla de la computadora en la forma en que se ha acostumbrado, y también permiten que la pantalla se manipule como si dijera que las imágenes en la pantalla eran objetos de la vida real. (No lo son, solo son imágenes, incluso el cursor del mouse) (Ok, ya terminé. Lo suficiente para editar y alargar mis pensamientos, es hora de ir a la cama)

Además, lo que realmente no entiendo es cómo la computadora ''lee'' los 0. Parece que un ''0'' no debe ser una ''falta de voltaje'', sino que debe ser algún otro tipo de señal donde quizás algo como 1 voltio = 1, y 0.5 voltios = 0. Alguna diferencia distinguible entre las corrientes en un circuito eso seguiría enviando una señal, pero podría ser la diferencia entre abrir y cerrar un circuito específico.

Si estoy en lo cierto al respecto, algo serio para los ingenieros informáticos del mundo, el nivel de sofisticación es delicioso. Espero saber todo sobre tecnología algún día. Por ahora solo estoy intentando pasar por arduino.

Por último ... algo sobre lo que me he preguntado ... ¿sería posible programar las computadoras de hoy sin el uso de otra computadora?


Tienes que entender cómo funciona una computadora en sus principios básicos y esto te aclarará las cosas ... Por lo tanto, recomiendo leer cosas como Neumann Architecture.

Básicamente, en una computadora muy simple solo tiene una memoria como una matriz que tiene instrucciones para su procesador, los datos y todo son números binarios.

Su programa comienza en un lugar determinado de su memoria y lee el primer número ...

Así que aquí viene el giro: estos números pueden ser instrucciones o datos. Su procesador lee estos números y los interpreta como instrucciones

Ejemplo: la dirección de inicio es 0

en 0 es una instrucción como "leer el valor de la dirección 120 en la ALU (unidad matemática)

entonces pasa a la dirección 1

"leer el valor de la dirección 121 en ALU"

luego pasa a la dirección 2

"restar números en ALU"

luego pasa a la dirección 3

"Si el valor de ALU es menor que cero, vaya a la dirección 10"

no es más pequeño que cero, por lo que se dirige a la dirección 4

"ir a la dirección 20"

ves que esto es un básico si (a <b)

Puede escribir estas instrucciones como números y puede ejecutarlas su procesador, pero como nadie quiere hacer este trabajo (eso fue lo que hicieron con las tarjetas perforadas en los años 60), se inventó el ensamblador ...

agregue 10, 11, 20 // cargar var desde la dirección 10 y 11; ejecutar adición y almacenar en la dirección 20

En conclusión:

El ensamblador (instrucciones del procesador) puede denominarse binario porque está almacenado en números simples

Pero todo lo demás puede ser un archivo binario, también.

En realidad, si tiene un archivo .exe simple, es tanto ... Si tiene variables como a = 10 yb = 20, estos valores se pueden almacenar en algún lugar entre las cláusulas if y para los bucles ... Depende de El compilador donde se ponen estos.

Pero si tiene un modelo 3D complejo, puede almacenarse en un archivo separado sin código ejecutable en él ...

Espero que ayude a aclarar un poco las cosas.


El lenguaje de máquina es un lenguaje de programación de bajo nivel que generalmente consta de números. Debido a que son solo números, se pueden ver de forma binaria, octal, decimal, hexadecimal o de cualquier otra forma. Dave4723 dio una explicación más completa en su respuesta.

El código binario es básicamente cualquier información representada por una secuencia de 1s y 0s .

Un archivo binario es cualquier archivo que no sea de texto ; por ejemplo, un .exe , un .png , etc.