Download ppt - IPN
Transcript
Arquitecturas de Computadoras Capitulo 2 Aritmética Computacional www.microse.cic.ipn.mx Números Decimales (base 10) Recordatorio del Capitulo 1: Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Ejemplo: 3271 = (3x103) + (2x102) + (7x101) + (1x100) Nótese la posición del exponente !!!! www.microse.cic.ipn.mx 2 Números Binarios (base 2) Recordatorio del Capitulo 1: Dígitos: 0, 1 Ejemplo: 1011 = (1x23) + (0x22) + (1x21) + (1x20) 8 + www.microse.cic.ipn.mx 0 + 2 + 1 = 1110 3 Enteros Codificación numérica Notación: W: número de bits en una “palabra” Tipo de datos en C Dato de 32 bits (Pentium 4) Dato de 64 bits (Alpha) Long int 32 64 Int 32 32 Short 16 16 Char 8 8 Enteros: se expresaran en minúsculas (x, y, z) Vectores de bits: se expresaran con mayúsculas (A, B, C) A=AW-1, AW-2, AW-2, … AW0 www.microse.cic.ipn.mx 4 Codificación numérica Sin Signo: Enteros Complemento a 2: B2U(10101010)=1x27+0x26+1x25+0x24+1x23+0x22+1x21+0X20= AA16= 17010 B2T(10101010)=-1x27+0x26+1x25+0x24+1x23+0x22+1x21+0X20= AA16=-8610 Bit de Signo: Para complemento a dos (2’s), el bit mas significativo indica el signo 0: Positivo 1: Negativo www.microse.cic.ipn.mx 5 Codificación numérica Enteros en C short int x: 2010 ; short int y: -2010 ; Variable Decimal Hexadecimal Binario x 2010 07DA 0000011111011010 y -2010 F826 1111100000100110 www.microse.cic.ipn.mx 6 Codificación numérica Enteros Posición Peso 2010 Sumatoria -2010 Sumatoria 0 20=1 0 0 0 0 1 21=2 1 2 1 2 2 22=4 0 0 1 4 3 23=8 1 8 0 0 4 24=16 1 16 0 0 5 25=32 0 0 1 32 6 26=64 1 64 0 0 7 27=128 1 128 0 0 1 256 0 0 8 8 2 =256 www.microse.cic.ipn.mx 7 Rangos Numéricos W=5 00000 00001 11111 11110 -1 0 1 11101 2 -2 -3 11100 -4 . . . -15 -16 15 10001 10000 01111 www.microse.cic.ipn.mx . . . Rangos Numéricos Valores sin signo: Umin = 0 000…0 Umax = 2W-1 111…1 W=16 Valores complemento a 2: Tmin = -2W-1 100…0 Tmax = 2W-1-1 0111…1 Decimal Hexadecimal Binario UMAX 65535 FF FF 1111 1111 1111 1111 TMAX 32767 7F FF 0111 1111 1111 1111 TMIN -32768 80 00 1000 0000 0000 0000 -1 -1 FF FF 1111 1111 1111 1111 0 0 00 00 0000 0000 0000 0000 www.microse.cic.ipn.mx 9 Valores Tamaños de Palabra W 8 16 UMAX 255 65,535 4,294, 967, 295 18, 446, 744, 073,709, 551,615 TMAX 127 32,767 2,147, 483, 647 9, 223,372, 036, 854, 775, 807 TMIN -128 -32,768 -2,147, 483, 648 9, 223,372, 036, 854, 775, 808 Observaciones: |Tmin| = Tmax+1 Rango asimétrico Umax= 2*Tmax+1 www.microse.cic.ipn.mx 32 64 Programación en C: #include <limits.h> declaración de constantes ULONG_MAX LONG_MAX LONG_MIN Valores específicos para la plataforma 10 Complemento a 2 1 PASO. Inversión: Se realiza bit a bit 1510 = 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1b 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0b 2 PASO. Sumar -1510 = 1b 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1b Este método esta basado en que la suma de un numero y su representación invertida da como resultado 111…111. Lo que representa al -1. Si X+~X =-1 luego X+~X +1 = 0 entonces se puede expresar ~X +1 = -X www.microse.cic.ipn.mx 11 Negación de un número (+) 510 = 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0b + 1b -510 = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1b Un número negativo (complemento a 2) tiene un número infinito de 1’s a la izquierda www.microse.cic.ipn.mx 12 Negación de un número (-) -510 = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1b 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0b + 1b 510 = 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1b Un número positivo (complemento a 2) tiene un número infinito de 0’s a la izquierda www.microse.cic.ipn.mx 13 Extensión de una palabra c/signo Dado un número entero con signo x de tamaño de palabra w bits , realizar su conversión a un número entero con w+k bits con el mismo valor. W x Regla: Hacer k copias del bit de signo x’= (xw-1, …xw-1),xw-1, xw-2, …x0 K copias del bit de signo W x’ www.microse.cic.ipn.mx 14 Representación Hexadecimal El Tamaño de datos de muchas computadoras son múltiplos de 4, (8, 16, 32, 64) Base 16 es múltiplo de 2. Cada digito binario puede ser remplazado por un digito hexadecimal . Hex Bin Hex Bin Hex Bin Hex Bin 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111 www.microse.cic.ipn.mx 15 Binario a Hexadecimal 1110 1100 1010 1000 E C A 8 www.microse.cic.ipn.mx 0110 0100 0010 0000 6 4 2 0 16 Datos con Signo y sin Signo en C Constantes: Por defecto se consideran enteros con signo si tiene U como sufijo, son considerados sin signo 0U, 454321U Casting (conversión de tipo de datos): Conversión explicita entre datos con signo y sin signo similar a U2T y T2U int tx, ty; unsigned ux, uy; tx = (int) ux; uy = (unsigned) ty; www.microse.cic.ipn.mx 17 Conversión de tipo de Datos (Casting ) Implícitas: expresiones cuyos operando mezclan variables y constantes de tipos diferentes. int x; float y; float z; z = x+y; El operador + convierte x a float (por compilación) Explicitas: int x; long y = (long)x; www.microse.cic.ipn.mx 18 Reglas de promoción automática 1. 2. 3. Todos los char y short se convierten a int. todos los unsigned char y unsigned short se convierten a unsigned. Si la expresión es de tipo mixto, el operando de menor rango se promueve al tipo de operando de mayor rango y se convierte toda la expresión a ese tipo. int < unsigned < long < unsignedlong < float < doble A este proceso se le conoce como promoción www.microse.cic.ipn.mx 19 Por que la promoción? Unidades funcionales de enteros, solo realizan operaciones (+,*, /, &, |, !, >>, << ) sobre números enteros. www.microse.cic.ipn.mx 20 Razón de la promoción Las operaciones de punto flotante son calculadas por unidades de P. F., ¡sus entradas deben contener el mismo tipo de datos!. www.microse.cic.ipn.mx 21 www.microse.cic.ipn.mx 22