Download ppt - IPN

Document related concepts

Extensión de signo wikipedia , lookup

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