procesadores informáticos han aumentado en complejidad y capacidad desde su invención , y los programadores de computadoras han tenido que diseñar sus herramientas de desarrollo en torno a estos cambios. A medida que aumenta el tamaño de memoria, como en el paso de 32 bits para procesadores de 64 bits , los compiladores de edad y código fuente deben ser actualizados para aprovechar todo el potencial de un procesador. Parte de esto se debe a la mayor espacio disponible para las variables o números de precisión, tales como números enteros. La colección de compiladores de GNU, o GCC , no es una excepción . Aunque los programadores pueden modificar GCC para trabajar entre los sistemas de 32 bits y 64 bits , el procesador determina en última instancia, lo que los tamaños de datos funcionan mejor en el código fuente . Números enteros y memoria
Al escribir código informático , que , inevitablemente, utilice uno de los artefactos necesarios de programación : variables . Una de las variables primarias disponibles en la mayoría de cada lenguaje de programación es el número entero . El entero - un número decimal entero - representa una unidad numérica básica en forma decimal . Sin embargo , ya que las computadoras no almacene valores numéricos decimales internamente sino como números binarios , variables enteras viven en localidades de memoria en forma de cadenas de dígitos binarios. Estas cadenas binarias están sujetos a las limitaciones de la memoria del sistema y el número de dígitos binarios de una posición de memoria puede contener.
GCC y la Compilación Proceso
Al compilar un programa para un sistema Unix o Linux, es probable que utilice el compilador de GNU , GCC . El compilador GCC toma código fuente y compila en lenguaje ensamblador adecuado para el procesador anfitrión del sistema informático . Dependiendo del procesador y la aplicación de GCC disponible, el código ensamblador puede ser diferente entre máquinas similares. Parte del proceso de compilación, sin embargo, implica la gestión de los tipos de datos en el código fuente dentro de la estructura de la arquitectura del procesador
32 - . Y procesadores de 64 bits
< br >
La progresión de procesador tamaños registro ha seguido un camino particular en relación con la representación numérica binaria . Un registro en un procesador es una sola ubicación de memoria dentro del procesador . Un equipo está limitado en la cantidad de memoria que se puede tratar y el tamaño de los elementos de datos que puede almacenar. Un procesador de 32 bits tiene registros de 32 bits , lo que significa que puede almacenar objetos de hasta 2 ^ 32 bits de longitud . En términos decimales, un registro de 32 bits puede almacenar un número no negativo sin signo tan grande como 4294967295 . Registros con 64 bits de ampliar esta doblando la cantidad de dígitos binarios disponibles para representar números .
GCC y tamaño Integer
Normalmente , los compiladores están restringidos por los procesadores en los que que compilan sus programas. Una versión de la compilación de programas del CCG en un procesador de 32 bits podría no necesariamente compilar un programa listo para su uso de 64 bits . Sin embargo , a pesar de un compilador como GCC está limitada por su procesador , que es la combinación de procesador y compilador que determina el tamaño de un número entero en un programa en particular . Por defecto, en C y C + + de programación en un compilador GCC , un entero largo en un sistema de 32 bits es de 32 bits , mientras que un entero largo en un sistema de 64 bits es de 64 bits.