Cambios de base. Número decimal 0 1 2 3 4 5 6 7 8 9 Representación binaria Representación octal 0 1 10 11 100 101 110 111 1000 1001 0 1 2 3 4 5 6 7 10 11 10 1010 12 11 1011 13 12 1100 14 13 1101 15 14 1110 16 15 1111 17 16 10000 20 Representación hexadecimal 0 1 2 3 4 5 6 7 8 9 A (valor decimal 10) B (valor decimal 11) C (valor decimal 12) D (valor decimal 13) E (valor decimal 14) F (valor decimal 15) 10 Cambio de binario a octal. Se divide el número binario de 12 dígitos en grupos de tres bits consecutivos cada uno, y se escriben estos grupos sobre los dígitos que corresponden al número octal: 100 011 010 001 4321 Cambio de binario a hexadecimal. Se divide el número binario de 12 dígitos en grupos de cuatro bits consecutivos cada uno y se escriben estos grupos sobre los dígitos que corresponden al número hexadecimal: 1000 1101 0001 8D1 1 Conversión de octal a binario. Por ejemplo, el número octal 653 se convierte a binario al escribir el 6 como su equivalente binario de 3 dígitos 011 para crear el número binario de 9 dígitos 110101011. Conversión de hexadecimal a binario. El número hexadecimal FAD5 se convierte a binario al escribir la F como su equivalente binario de 4 dígitos 1111, la A como su equivalente binario de 4 dígitos 1111, la A como su equivalente binario de 4 1010, la D como su equivalente binario de 4 dígitos 1101, y el 5 como su equivalente binario de 4 dígitos 0101 para formar el número de 16 dígitos: 1111101011010101. Conversión de decimal a otra base. Se multiplica el equivalente decimal de cada dígito por su valor posicional, y se suman estos productos. 32 16 8 4 2 1 110101 1*32 1*16 0*8 1*4 0*2 1*1 32 + 16 + 0 + 4 + 0 + 1 = 53 Conversión de octal a decimal. Se utiliza la misma técnica que la anterior pero esta vez se toman los valores posicionales octales apropiados. Conversión de hexadecimal a decimal. Se utiliza la misma técnica que la anterior pero tomando los valores posicionales hexadecimales apropiados. Complemento a uno. Es un operador de complemento a nivel de bits ( ) de C. Ones_complement_of_value = value; Aquí value tiene sus bits invertidos, los unos se convierten en ceros y vice versa: value: 00000000 00000000 00000000 00001101 value: (es decir el complemento uno de value) 11111111 11111111 11111111 11110010 2 AND: los bits en el resultado se establecen a 1 si los bits correspondientes en los dos operandos son 1. | OR inclusivo: los bits en el resultado se establecen a 1 si por lo menos uno de los bits correspondientes en ambos operandos es 1. ^ OR exclusivo: los bits en el resultado se definen a 1 si uno de los bits correspondientes en los ambos operandos es 1. << desplazamiento a la izquierda: desplaza los bits del primer operando hacia la izquierda en el número de bits especificado por el segundo operando; a partir de la derecha, rellena con bits 0. >> desplazamiento a la derecha: desplaza los bits del primer operando hacia la derecha en el número de bits especificado por el segundo operando; el método de rellenar a partir de la izquierda depende de la máquina. 3