Red de conocimiento informático - Material del sitio web - En teoría de la computación, ¿cómo convertir binario a octal?

En teoría de la computación, ¿cómo convertir binario a octal?

Método de conversión de binario, octal y hexadecimal a decimal: convierte binario, octal y hexadecimal a decimal ----------expandir por peso de bits. Conversión binaria a decimal El peso del bit 0 de un número binario es 2 elevado a la potencia 0, y el peso del primer bit es 2 elevado a la potencia 1... Por ejemplo, dado un número binario: 0110 0100, convertido a decimal: La siguiente es la expresión vertical: 0110 0100 convertido a decimal 0º dígito 0 x 2^0 = 0; 1er dígito 0 x 2^1 = 0 2º dígito 1 x 2^2 = 4; 2^3 = 0 El cuarto dígito 0 x 2^4 = 0; El quinto dígito 1 x 2^5 = 32; El sexto dígito 1 x 2^6 = 64; ------- ---------------- (0110 0100)B=(100)D Nota: Las letras correspondientes después de los números representan diferentes sistemas de acarreo. B representa binario, O representa octal, D representa decimal y H representa hexadecimal. Convertir octal a decimal Octal es sumar 1 a cada 8. Los números octales utilizan ocho números del 0 al 7 para expresar un número. El peso del dígito 0 del número octal es 8 elevado a la potencia 0, el peso del primer dígito es 8 elevado a la potencia 1 y el peso del segundo dígito es 8 elevado a la potencia 2... Por lo tanto , hay un número octal: 1507, Convertido a decimal: Expresado en formato vertical: 1507 convertido a decimal. Posición 0 7 x 8^0 = 7 Posición 1 0 x 8^1 = 0 Posición 2 5 x 8^2 = 320 Posición 3 1 x 8^3 = 512 ---------- ---- ------------ (1507)O=(839)D De manera similar, también podemos calcular directamente usando la expresión horizontal: 7 X 8^0 0 X 8^1 5 X 8^ 21 12x16^- 2 =2560 176 12 0.5 0.046875 =(2748.546875)D Convertir decimal a binario, octal, hexadecimal 1. Ejemplo de resto después de dividir R por parte entera: (125)D=(1111101)B Nota: El último de los restos El resto El bit obtenido es el bit más alto, el resto obtenido primero es el bit más bajo y están ordenados de mayor a menor. 2. Multiplica la parte decimal por R y redondea a un número entero: (0,25)D 0,25 La conversión de números enteros es precisa, mientras que la conversión de decimales puede dar como resultado decimales infinitos o decimales recurrentes. En este momento, se requiere procesamiento de redondeo para truncar, por lo que la conversión de decimales puede estar ligeramente desviada. Las flechas indican una tendencia de mayor a menor.

Conversión binaria y decimal algoritmo mutuo de conversión decimal y binaria

Decimal a binario:

Dividir entre 2 hasta que el resultado sea 1

Suma el resto y el último 1 es el resultado escrito en orden inverso de abajo hacia arriba

Por ejemplo, 302

302/2 = 151 + 0

151/2 = 75 + 1

75/2 = 37 más que 1

37/2 = 18 más que 1

18/2 = 9 más que 0

9/2 = 4 más 1

4/2 = 2 con resto 0

2/2 = 1 con resto 0

Entonces binario es 100101110

Binario a decimal

Comience desde el último dígito y enumere los dígitos 0, 1, 2... en secuencia

El número en el enésimo dígito (0 o 1) se multiplica por 2 n multiplicado por el cuadrado

El resultado obtenido se suma a la respuesta

Por ejemplo: 01101011. Convertir a decimal:

Dígito 0: 1 por 2 elevado a la potencia 0 = 1

1 por 2 elevado a la potencia 1 = 2

0 por 2 elevado a la potencia 2 = 0

1 multiplicado por 2 elevado a la tercera potencia = 8

0 multiplicado por 2 elevado a la 4ª potencia = 0

1 multiplicado por 2 elevado a la 5ª potencia = 32

1 multiplicado por 2 elevado a la sexta potencia = 64

0 multiplicado por 2 elevado a la potencia de 7 = 0

Entonces: 1+2+0

+8+32+64+0=107.

Binario 01101011 = decimal 107. -----------------------El último número en binario es uno, y cuando se convierte a decimal, es el número base.

1. Convertir números binarios a números decimales

El método básico para convertir números binarios a números decimales es escribir primero los números binarios como expansiones de coeficientes ponderados y luego calcularlos de acuerdo con el reglas de suma decimal y. Este enfoque se denomina método de "agregar por peso".

2. Convertir números decimales a números binarios

Al convertir números decimales a números binarios, debido a los diferentes métodos de conversión de números enteros y decimales, primero convierta la parte entera y la parte decimal de el número decimal Después de convertir por separado, luego se fusionan.

1. Convertir números enteros decimales a enteros binarios

Convierta números enteros decimales a enteros binarios utilizando el método de "dividir entre 2, tomar el resto y ordenar en orden inverso". El método específico es: use 2 para dividir el entero decimal, puede obtener un cociente y un resto, luego use 2 para dividir el cociente, obtendrá un cociente y un resto, y así sucesivamente hasta que el cociente sea cero, y luego; use el primer resto como un número binario Los bits significativos de orden inferior, y los restos restantes se utilizan como bits significativos de orden superior del número binario y están organizados en secuencia.

2. Convierte decimales a decimales binarios

Convierte decimales a decimales binarios usando el método "multiplicado por 2, redondeado y ordenado". El método específico es: multiplicar el número decimal por 2 para obtener el producto, sacar la parte entera del producto, luego multiplicar la parte decimal restante por 2 para obtener otro producto, luego sacar la parte entera del producto, y así hasta que la parte decimal sea cero o hasta que se alcance la precisión requerida.

Luego, las partes enteras extraídas se organizan en orden. El número entero tomado primero se usa como el bit significativo de orden superior del decimal binario, y el número entero tomado después se usa como el bit significativo de orden inferior. .

1. Conversión de binario a decimal

(1) Método de conversión de binario a decimal: "Ampliar suma por peso"

Ejemplo:

(1011.01) 2=(1 ×23+0×22+1×21+1×20×2-1+1×2-2)10

=(8+2+1+0.25)10

=(11.25)10

p>

(2) Convertir decimal a binario

· Convertir entero decimal a binario: "Dividir entre 2 y tomar el resto, generar en orden inverso"

Ejemplo : (89) 10 = ( 1011001) 2

2 89

2 44 …… 1

2 22 …… 0

2 11 …… 0

p>

2 5 …… 1

2 2 …… 1

2 1 …… 0

0 …… 1

· Convertir número decimal a binario: "Multiplicar por 2, redondear y generar secuencialmente"

Ejemplo:

(0.625)10= (0.101)2

(0.625)10= (0.101)2

p>

0.625

X 2

1.25

X 2

0,5

X 2

1,0

2. Conversión entre octal y binario

Ejemplo: Convertir octal 37.416 en número binario:

37. 4 1 6

011 111. 100 001 110

Es decir: (37.416) 8 = (11111.10000111) 2

Ejemplo: Convertir binario 10110.0011 a octal:

0 1 0 1 1 0 0 0 1 1 0 0

2 6

Es decir: (10110.011) 2 = (26.14) 8

3. Conversión entre hexadecimal y binario lt; BRgt; Ejemplo: Convertir el número hexadecimal 5DF.9 a binario:

5 D F. 9

0101 1101 1111.1001

Es decir: (5DF.9) 16 = (10111011111.1001) 2

Ejemplo: Convertir el número binario 1100001.111 en dieciséis Base:

0110 0001. 1110

6 1. E

Es decir: (1100001.111) 2 = (61.E) 16 código ascii. El nombre completo del código ascii es Código de intercambio de información estándar estadounidense. ¿Es un estándar que define un estándar? se define en ASCII como 01000001, que es el decimal 65. Con este estándar, cuando ingresamos A, la computadora puede saber que la codificación binaria del carácter ingresado es 01000001 a través del código ASCII. Sin tal estándar, debemos encontrar una manera de decirle a la computadora que hemos ingresado una A; sin tal estándar, necesitamos recodificar en otras máquinas para decirle a la computadora que queremos ingresar una A. El código ASCII no se refiere a decimal, sino a binario. Es solo cuestión de acostumbrarse a usar la representación decimal. Por ejemplo, en código ascii, la codificación binaria de A es 01000001. Si se expresa en sistema decimal, es 65 y en sistema hexadecimal, es 41H.

La tabla de códigos ASCII solo incluye representación de información de algunos caracteres, números y signos de puntuación. Esto se debe principalmente a que las computadoras se inventaron en los Estados Unidos, ¡nos basta con usar la representación ASCII! Pero al ingresar caracteres chinos, no se puede expresar usando códigos ASCII, y los caracteres chinos son solo la representación universal de China. Entonces, si queremos ingresar caracteres chinos en la computadora, debe haber un estándar como los códigos ASCII para representar cada carácter chino. Este es el código estándar nacional de caracteres chinos de China, que define un estándar para representar caracteres chinos en las computadoras. A través de este estándar, cuando ingresamos caracteres chinos, nuestro código de entrada se convierte en un código de área y el código de glifo del carácter chino se obtiene a través del código de área único y se muestra. ¡Por supuesto, el código de ubicación de los caracteres chinos también se expresa en binario en la computadora!

¡Las respuestas incompletas son solo como referencia!

Convertir número binario a número decimal

El peso del bit 0 del número binario es 2 elevado a la potencia 0, y el peso del 1er bit es 2 elevado a la potencia 1...

Entonces, hay un número binario: 0110 0100, convertido a decimal:

La siguiente es la forma vertical:

0110 0100 convertido a decimal

p>

Bit 0 0 * 20 = 0

Bit 1 0 * 21 = 0

Bit 2 1 * 22 = 4

El 3er dígito 0 * 23 = 0

El 4to dígito 0 * 24 = 0

El 5to dígito 1 * 25 = 32

El sexto dígito 1 * 26 = 64

El séptimo bit 0 * 27 = 0 +

----------------- ---- ---

100

Calculado en forma horizontal:

0 * 20 0 * 21 1 * 22 1 * 23 0 * 24 1 * 25 1 * 26 0 * 27 = 100

Todo lo multiplicado por 0 es 0, por lo que también podemos saltarnos directamente el bit con valor 0:

1 * 22 1 * 23 1 * 25 1 * 26 = 100

6.2.2 Convertir número octal a número decimal

Octal es sumar 1 a cada 8.

Los números octales utilizan ocho números del 0 al 7 para expresar un número.

El peso del dígito 0 del número octal es 8 elevado a la potencia 0, el peso del primer dígito es 8 elevado a la potencia 1 y el peso del segundo dígito es 8 elevado a la potencia 2...

Entonces, dado un número octal: 1507, convertido a decimal:

Expresado en forma vertical:

1507 convertido a decimal.

Número 0 7 * 80 = 7

Número 1 0 * 81 = 0

Número 2 5 * 82 = 320

3º dígito 1 * 83 = 512 +

--------------------------

839

De manera similar, también podemos calcular directamente usando la expresión horizontal:

7 * 80 0 * 81 5 * 82 1 * 83 = 839

El resultado es, el octal el número 1507 se convierte en un número decimal de 839

6.2.3 Cómo expresar números octales

C, ¿cómo expresar un número octal en lenguaje C? Si este número es 876, podemos concluir que no es un número octal, porque es imposible tener números arábigos superiores a 7 en números octales.

Pero si este número es 123, 567 o 12345670, entonces es posible si es un número octal o decimal.

Entonces, C, C estipula que si quieres indicar que un número está en octal, debes agregar un 0 delante de él. Por ejemplo: 123 es decimal, pero 0123 significa octal. Así se expresan los números octales en C y C.

Dado que ni C ni C proporcionan un método de expresión para números binarios, el sistema octal que aprendemos aquí es el segundo sistema de expresión numérica en el lenguaje CtC que aprendemos.

Ahora, para el mismo número, como 100, podemos usar expresiones decimales ordinarias en el código, como al inicializar variables:

int a = 100

;

También podemos escribir así:

int a = 0144; //0144 es 100 en octal; aprenderemos cómo convertir un número decimal a octal más adelante.

Asegúrate de recordar que al expresar en octal, no puedes omitir el 0 inicial. De lo contrario, la computadora lo tratará como decimal. Sin embargo, hay un lugar donde no se puede usar la suma de 0 cuando se usan números octales, y es la expresión de "carácter de escape" que aprendimos anteriormente para expresar caracteres.

6.2.4 El uso de números octales en caracteres de escape

Hemos aprendido a utilizar un carácter de escape '\' más una letra especial para representar un carácter determinado. Por ejemplo: '\n' representa una nueva línea (línea), '\t' representa el carácter Tabulador y '\'' representa una comilla simple. Hoy aprendimos otra forma de utilizar caracteres de escape: el carácter de escape '\' va seguido de un número octal, que se utiliza para representar el carácter cuyo código ASCII es igual a este valor.

Por ejemplo, consulte la tabla de códigos ASCII en el Capítulo 5. Encontramos que el valor ASCII del carácter de signo de interrogación (?) es 63, luego podemos convertirlo al valor octal: 77, y luego utilice '\ 77' para representar '?'. Dado que es octal, debe escribirse como '\077', pero debido a que las regulaciones C y C no permiten el uso de barras diagonales más números decimales para representar caracteres, no es necesario escribir el 0 aquí.

De hecho, rara vez tenemos que usar un carácter de escape más un número octal para representar un carácter en la programación real. Por lo tanto, todos solo necesitan comprender el contenido de la sección 6.2.4.

6.2.5 Convertir números hexadecimales a decimales

Sistema binario, utilizando dos números arábigos: 0, 1;

Sistema octal, utilizando ocho números arábigos: 0, 1, 2, 3, 4, 5, 6, 7;

Sistema decimal, utilizando diez números arábigos:

Sistema hexadecimal, utilizando dieciséis números arábigos. .. Espera, ¿los árabes o los indios sólo inventaron 10 números?

El sistema hexadecimal consiste en basar 1 en cada 16, pero solo tenemos diez números del 0 al 9, por lo que usamos las cinco letras A, B, C, D, E y F para representar el 10. respectivamente 11, 12, 13, 14, 15. Las letras no distinguen entre mayúsculas y minúsculas.

El peso del dígito 0 del número hexadecimal es 16 elevado a la potencia 0, el peso del primer dígito es 16 elevado a la potencia 1 y el peso del segundo dígito es 16 elevado a la potencia 2. Cuadrado...

Entonces, en la posición N (N comienza desde 0), si es un número X (X es mayor o igual a 0, y X es menor o igual a 15, es decir: F), el tamaño representado es X * 16 elevado a la enésima potencia.

Supongamos que hay un número hexadecimal 2AF5, entonces ¿cómo convertirlo a decimal?

Utilizar cálculo vertical:

Convertir 2AF5 a decimal:

Dígito 0: 5 * 160 = 5

1er dígito: F * 161 = 240

2do dígito: A * 162 = 2560

3er dígito: 2 * 163 = 8192 +

-- ----- -----------------------

10997

El cálculo directo es:

5 * 160 F * 161 A * 162 2 * 163 = 10997

(No olvides que, en el cálculo anterior, A representa 10 y F representa 15)

Ahora se puede ver que la clave para convertir todas las bases a decimales es que sus respectivos pesos sean diferentes.

Supongamos que alguien te pregunta, ¿por qué el número decimal 1234 es mil doscientos treinta y cuatro? Puedes darle esta fórmula:

1234 = 1*103 2*102 3*101 4*100

6.2.6 Método de expresión de números hexadecimales

p>

Si no se utilizan formas de escritura especiales, los números hexadecimales se confundirán con los números decimales. Para cualquier número: 9876, no se puede saber si es hexadecimal o decimal.

C, C estipula que los números hexadecimales deben comenzar con 0x. Por ejemplo, 0x1 representa un número hexadecimal. Y 1 representa un número decimal. Otros como: 0xff, 0xFF, 0X102A, etc. La x que contiene tampoco distingue entre mayúsculas y minúsculas. (Nota: el 0 en 0x es el número 0, no la letra O)

Los siguientes son algunos ejemplos de uso:

int a = 0x100F

; int b = 0x70 a;

En este punto, hemos aprendido todas las bases: expresiones numéricas decimales, octales y hexadecimales. El último punto es muy importante en C/C, los números decimales se dividen en positivos y negativos. Por ejemplo, 12 significa 12 positivo y -12 significa 12 negativo. Sin embargo, octal y hexadecimal solo se pueden usar para llegar a números positivos sin signo. Entero, si escribe: -078 en el código, o escribe: -0xF2, C, C no lo trata como un número negativo.

6.2.7 El uso de números hexadecimales en caracteres de escape

El carácter de escape también se puede conectar a un número hexadecimal para representar un carácter. Por ejemplo, el carácter '?' mencionado en la Sección 6.2.4 se puede expresar de las siguientes maneras:

'?' //Ingrese caracteres directamente

'\77' // Utilice octal, puede omitir el 0 inicial en este momento

'\0x3F' //Utilice hexadecimal

Del mismo modo, esta sección es sólo para comprensión. Además del carácter nulo representado por el número octal '\0', rara vez utilizamos los dos últimos métodos para representar un carácter.

6.3 Convertir números decimales a números binarios, octales y hexadecimales

6.3.1 Convertir números decimales a números binarios

Para ti Un número decimal, como : 6, ¿qué pasa si se convierte en un número binario?

Convertir un número decimal en un número binario es un proceso de división continua por 2:

Dividir el número a convertir entre 2 para obtener el cociente y el resto,

Continúa dividiendo el cociente entre 2 hasta que el cociente sea 0. Finalmente, ordene todos los restos en orden inverso y el número obtenido será el resultado de la conversión.

¿Suena un poco confundido? Ilustremos con ejemplos. Por ejemplo, desea convertir 6 en un número binario.

"Dividimos el número a convertir entre 2 para obtener el cociente y el resto."

Entonces:

El número a convertir es 6, 6 ÷ 2, el cociente es 3 y el resto es 0. (¡No me digas que no puedes calcular 6÷3!)

"Continúa dividiendo el cociente entre 2 hasta que el cociente sea 0..."

Ahora el cociente es 3, todavía no es 0, así que continúa dividiendo entre 2.

Entonces: 3 ÷ 2, el cociente es 1 y el resto es 1.

"Continúa dividiendo el cociente entre 2 hasta que el cociente sea 0..."

Ahora el cociente es 1, no 0, así que continúa dividiendo entre 2.

Entonces: 1 ÷ 2, el cociente es 0 y el resto es 1 (usa lápiz y papel para calcular, ¡es 1÷2 el cociente de 0 y más de 1!)

"El cociente es 0 y el resto es 1. Continúa dividiendo entre 2 hasta que el cociente sea 0...Finalmente, organiza todos los restos en orden inverso". Ahora el cociente es 0.

Después de tres cálculos, obtuvimos los restos: 0, 1, 1. Disponiendo todos los restos en orden inverso, es decir: ¡110!

6 se convierte a binario y el resultado es 110.

Cambia el párrafo anterior por una tabla, quedará:

Cociente restante del proceso de cálculo del dividendo

6 6/2 3 0

3 3/2 1 1

1 1/2 0 1

(En computadoras, ÷ se representa con /)

Si es Durante Después del examen, todavía nos lleva un poco de tiempo dibujar dicha tabla. El proceso de conversión más común es usar la división continua como se muestra a continuación:

(Imagen: 1)

Consulte la imagen, la tabla y la descripción del texto, y tome un bolígrafo para calcular cómo convertir 6 en un número binario.

Después de hablar durante mucho tiempo, ¿son correctos nuestros resultados de conversión? ¿El número binario 110 es 6? Ha aprendido cómo convertir números binarios a base 10, así que calcule ahora si 110 es 6 cuando se convierte a base 10.

6.3.2 Conversión de números decimales a 8 y 16 números decimales

Estoy muy contento, cómo convertir números decimales a números octales y a números binarios. El método es similar, con el único cambio: el divisor cambia de 2 a 8.

Veamos un ejemplo de cómo convertir el número decimal 120 en un número octal.

Representado en una tabla:

Cociente restante del proceso de cálculo del dividendo

120 120/8 15 0

15 15/8 1 7

1 1/8 0 1

120 se convierte a octal y el resultado es: 170.

Estoy muy, muy feliz. El método de convertir un número decimal en un número hexadecimal es similar al método de convertir un número decimal en un número binario. El único cambio es: el divisor cambia de 2. a 16.

Lo mismo es 120, convertido a hexadecimal:

El cociente restante del proceso de cálculo del dividendo

120 120/16 7 8

7 7/16 0 7

120 se convierte a hexadecimal y el resultado es: 78.

Por favor, tome papel y lápiz y utilice el formulario (Figura: 1) para calcular el proceso de las dos tablas anteriores.

6.4 2. Conversión de números hexadecimales entre sí

Es importante convertir números binarios y hexadecimales entre sí. Sin embargo, la conversión entre los dos no requiere cálculo. Cada programador de C y C puede ver números binarios y convertirlos directamente a números hexadecimales, y viceversa.

Lo mismo ocurre con nosotros. Mientras terminemos de aprender esta sección, podremos hacerlo.

Primero, veamos un número binario: 1111. ¿Qué es?

También puedes calcular así: 1 * 20 1 * 21 1 * 22 1 * 23 = 1 * 1 1 * 2 1 * 4 1 * 8 = 15.

Sin embargo, como 1111 solo tiene 4 dígitos, debemos recordar directamente el peso de cada dígito, y recordarlo de mayor a menor: 8, 4, 2, 1. Es decir, el peso del bit más alto es 23 = 8, seguido de 22 = 4, 21 = 2 y 20 = 1.

Recuerda 8421, para cualquier número binario de 4 cifras, podemos calcular rápidamente su valor decimal correspondiente.

A continuación se enumeran todos los valores posibles del número binario de cuatro dígitos /p>

1111 = 8 4 2 1 = 15 F

1110 = 8 4 2 0 = 14 E

1101 = 8 4 0 1 = 13 D

1100 = 8 4 0 0 = 12 C

1011 = 8 4 0 1 = 11 B

1010 = 8 0 2 0 = 10 A

1001 = 8 0 0 1 = 10 9

0001 = 0 0 0 1 = 1 1

0000 = 0 0 0 0 = 0 0

Para convertir números binarios a hexadecimales, necesitas convertirlos a hexadecimal en segmentos de 4 dígitos.

Por ejemplo (la línea superior es un número binario, el siguiente es el número hexadecimal correspondiente):

1111 1101, 1010 0101, 1001 1011

F D , A 5, 9 B

Por el contrario, cuando vemos FD, ¿cómo podemos convertirlo rápidamente en un número binario?

Convierta F primero:

Cuando vemos F, necesitamos saber que es 15 (tal vez no esté familiarizado con los cinco números A ~ F), y luego cómo hacer 15 usando 8421? Debería ser 8 4 2 1, por lo que los cuatro dígitos son 1:1111.

Luego convierte D:

Cuando veo D, sé que es 13. ¿Cómo puedo usar 8421 para hacer 13? Debería ser: 8 2 1, es decir: 1011.

Entonces, FD se convierte en un número binario, que es: 1111 1011

Dado que la conversión de hexadecimal a binario es bastante sencilla, necesitamos convertir un número decimal a binario Cuando contando, también puedes convertirlo primero a hexadecimal y luego convertirlo a binario.

Por ejemplo, si el número decimal 1234 se convierte en un número binario, si desea seguir dividiendo entre 2 para obtener directamente el número binario, deberá calcular más veces. Así que primero podemos dividir por 16 para obtener el número hexadecimal:

resto del cociente del proceso de cálculo del divisor

1234 1234/16 77 2

77 77/16 4 13 (D)

4 4/16 0 4

El resultado en hexadecimal es: 0x4D2

Entonces podemos escribir directamente la forma binaria de 0x4D2: 0100 1011 0010.

La relación de mapeo es:

0100 -- 4

1011 -- D

0010 -- 2

De manera similar, si un número binario es muy largo y necesitamos convertirlo a un número decimal, además del método que aprendimos anteriormente, también podemos convertir el número binario a hexadecimal primero y luego convertirlo a base decimal.

El siguiente es un ejemplo de un número binario de tipo int:

01101101 11100101 10101111 00011011

Lo convertimos a hexadecimal en grupos de cuatro dígitos: 6D E5 AF 1B