Expresar números binarios en c ++

las variables de C ++ se almacenan internamente como los llamados números binarios. Los números binarios se almacenan como una secuencia de 1 y 0 valores conocidos como Bits. La mayoría de las veces, no es realmente necesario para hacer frente a la que los bits particular, se utiliza para representar números. A veces, sin embargo, es práctico y cómodo de jugar con los números a nivel de bits - lo que C ++ proporciona un conjunto de operadores para ese propósito.

La llamada bit a bit operadores lógicos operan en sus argumentos a nivel de bits. Para entender cómo funcionan, primero examinar cómo las variables ordenadores almacenan.

El sistema de numeración decimal

Los números que ha estado familiarizado con desde el momento en que primero se podía contar con los dedos que se conoce como numeros decimales porque se basan en el número 10. En general, el programador expresa variables de C ++ como números decimales. De este modo se podría especificar el valor de var como (por ejemplo) 123, pero tenga en cuenta las consecuencias.

Un número tal como 123 se refiere a 1 * 100 + 2 * 10 + 3 * 1. Todos estos números de base - 100, 10 y 1 - son potencias de 10.

123 = 1 * 100 + 2 * 10 + 3 * 1

Expresado de una manera ligeramente diferente (pero equivalente), 123 tiene el siguiente aspecto:

123 = 1 * 102 + 2 * 101 + 3 * 100

Recuerda eso alguna número a la potencia cero es 1.

Otros sistemas numéricos

Bueno, está bien, utilizando como base 10 (o base) De nuestro sistema de conteo tallos probablemente de esos 10 dedos humanos, las herramientas de conteo originales. Una base alternativa para un sistema de conteo podría fácilmente haber sido 20.

Video: 50. Programación en C - Funciones - Ejercicio pasar un número entero a binario

Si nuestro esquema de numeración había sido inventado por los perros, bien podría estar basado en 8 (un dígito de cada pata está a la vista en la parte posterior de la pierna). Matemáticamente, tales una octal sistema hubiera funcionado igual de bien:

12310 = 1 * 82 + 7 * 81 + 3 * 80 = 1738

El pequeño 10 y 8 aquí se refieren al sistema de numeración, 10 para decimal (base 10) y 8 para octal (base 8). Un sistema de conteo puede utilizar cualquier base positiva.

El sistema de numeración binario

Las computadoras tienen esencialmente dos dedos. Computadoras prefieren contar usando la base 2. El número 12310 se expresa de esta manera:

12310 = 0 * 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 2012310 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 011110112

convención ordenador expresa números binarios mediante el uso de 4, 8, 16, 32, o incluso 64 dígitos binarios, incluso si los dígitos iniciales son 0. Esto también es debido a la forma ordenadores se construyen internamente.

Debido a que el término dígito se refiere a un múltiplo de 10, una dígito binario que se llama una poco (Una abreviatura de dígito binario). UN byte se compone de 8 bits. (Llamar a un dígito binario byte se no parece una buena idea.) de memoria se mide en bytes (como rollos se miden en unidades de docenas de panadería).

Con una base tan pequeño, usted tiene que utilizar una grande número de bits para expresar números. Los seres humanos no quieren la molestia de usar una expresión como 011110112 para expresar un valor tal mundano como 12310. Los programadores prefieren expresar números mediante el uso de un número par de bits.

El sistema octal - que se basa en 3 bits - era el sistema binario predeterminado en los primeros días de C. vemos un vestigio de esta aún hoy en día - una constante que empieza con un 0 se supone que es octal en C ++. Por lo tanto, la línea:

cout lt; lt; "0173 = " lt; lt; 0173 lt; lt; endl-

produce el siguiente resultado:

0173 = 123

Sin embargo, octal ha sido casi totalmente reemplazado por el hexadecimal sistema, que se basa en los dígitos 4 bits.

Video: Conversion Binario a Decimal - Formulario C++

Hexadecimal utiliza los mismos dígitos para los números 0 a 9. Para los dígitos entre 9 y 16, hexadecimal utiliza las seis primeras letras del alfabeto: A para 10, B para 11, y así sucesivamente. Así, 12310 se convierte 7Bdieciséis, Me gusta esto:

123 = 7 * 161 + B (es decir, 11) * 160 = 7Bdieciséis

Los programadores prefieren expresar números hexadecimales en múltiplos de 4 dígitos hexadecimales incluso cuando el primer dígito en cada caso es 0.

Por último, ¿quién quiere expresar un número hexadecimal como 7Bdieciséis mediante el uso de un subíndice? Terminales ni siquiera apoyo subíndices. Incluso en un procesador de texto, que es un arrastre para cambiar las fuentes hacia y desde el modo subíndice sólo para escribir dos dígitos pésimos.

Por lo tanto, los programadores (tontos, ellos) utilizan la convención de comenzar un número hexadecimal con una 0x. Así, 7B se convierte 0x7B. Usando esta convención, el número hexadecimal 0x7B es igual a 123 decimal mientras 0x123 hexadecimal es igual a 291 decimal. El fragmento de código

Video: PROGRAMA SUMADOR DE DOS NÚMEROS BINARIOS C++

cout lt; lt; "0x7B = " lt; lt; 0x7B lt; lt; endl-cout lt; lt; "0x123 = " lt; lt; 0x123 lt; lt; endl-

produce el siguiente resultado:

0x7B = 1230x123 = 291

Se pueden utilizar todos los operadores matemáticos sobre los números hexadecimales de la misma manera en que se aplica a los números decimales.

Video: #DECIMAL A BINARIO Y VICEVERSA: Como convertir un numero en binario y decimal|Pasar

Si realmente desea, puede escribir números binarios en C ++ `14 utilizando el prefijo ‘0b’. De este modo, se convierte en 123 0b01111011.

Artículos Relacionados