NUMERAÇÃO, BASE NUMÉRICA E TRANSFORMAÇÃO DE UMA

Propaganda
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
NUMERAÇÃO, BASE NUMÉRICA E TRANSFORMAÇÃO DE UMA BASE
Os números são na verdade coeficientes de uma determinada base numérica e podem
ser representados como números assinalados, não assinalados, em complemento
numérico 1, em complemento numérico 2 ou na forma exponencial etc... Para todas as
formas de representação do número existe uma determinada base onde o número é
definido. A base numérica mais conhecida e utilizada é a base 10. Por exemplo, o número
(21)10, corresponde a soma de 2 x 10 + 1, onde os coeficientes do número são 2 e 1
respectivamente. Podemos representar os números na base 10 da forma. Por exemplo,
para um número na base 10 com 04 dígitos 1245, pode ser representado como :
N = 1x 103 + 2 x 102 + 4 x 101 + 5 x 100
Assim qualquer número em qualquer base pode ser representado por :
N = an-1 Bn-1 , an-2Bn-2 , an-3Bn-3 , .......... , a1B1 , a0B0 , onde n > 0 e B > 1.
Onde 0 ≤ a < B.
A tabela a seguir apresenta os coeficientes dos números
As bases abaixo apresentadas são : 10,8,16 e 2. As bases 10, conhecida como decimal,
a base 8 como octal, a base 16 como hexadecimal e por fim a base 2 como binária.
Base 16
0
Base 10
0
1
Base 8
0
1
Base 2
0
1
1
2
3
4
5
6
7
2
3
4
5
2
3
4
5
8
9
A
6
7
8
6
7
B
C
D
E
F
9
CODIFICAÇÃO BINÁRIA, BINÁRIA DECIMAL E OUTROS CÓDIGOS.
Os números em qualquer base numérica podem ser codificados. A codificação utilizada
para o computador entender é a codificação binária. A base pode ser 2,3,4,.....,10,...etc...,
e o coeficiente da base estará codificado em binário segundo um código estabelecido. O
código binário é especificado por bits individuais, onde 1 bit é o menor valor numérico e
pode valer 0 ou 1. As tabelas abaixo mostram os alguns dos códigos binário existentes e
como são montados os coeficientes de uma base.
Por exemplo um número na base 16, cuja faixa vai de 0 a F é codificado pelo código
conhecido como 8-4-2-1. Este código possui 4 bits, sendo o bit-8 o mais significativo por
ter o maior peso igual a 8 e é tratado como MSB e o bit-1 o menos significativo por ter o
menor peso igual a 1 e é tratado como LSB. Este código é muito utilizado para codificar
números na base 2. Se o estudante utilizar a expressão que transforma um número de
qualquer base para a base 10, se chega no porque 8-4-2-1. Como são 4 bits, o valor será
:
N = a3 23, a2 22, a1 21 e a0 20 , os valores de a0, a1, a2 e a3 são valores binários {0 e 1}.
Pág. 1
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
Para calcular os pesos deve-se fazer os coeficientes iguais a 1 ou seja :
a3 = a2 = a1 = a0 = 1, os pesos serão : 8, 4, 2 e 1. A tabela da verdade a seguir mostra os
números codificados em binário no código 8-4-2-1. Chamando cada bit de A(MSB), B, C e
D (LSB). Um código utilizado para representar números na base 10 é conhecido como
BCD, ou seja codificação binária decimal, onde os números são codificados como 8-4-2-1
mas variam de 0 até 9, que é a faixa de operação dos números decimais. Para não bitolar
que o código sempre tem a mesma lei de formação da conversão dos números
transformados para a base 10, apresentamos mais 02 codificações, o código X3,
conhecido como excesso 3 e o o código 5-2-1-1. A única exigência é que os coeficientes
de qualquer código sejam binários {0 e 1}.
BASE 16 CÓD.
N
8
4
N
A
B
0
0
0
1
0
0
2
0
0
3
0
0
4
0
1
5
0
1
6
0
1
7
0
1
8
1
0
9
1
0
A
1
0
B
1
0
C
1
1
D
1
1
E
1
1
F
1
1
8-4-2-1
2
1
C
D
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
BASE 10 CÓD. 5-2-1-1
N
5
2
1
1
N
A
B
C
D
0
0
0
0
0
1
0
0
0
1
2
0
0
1
1
3
0
1
0
1
4
0
1
1
1
5
1
0
0
0
6
1
0
0
1
7
1
0
1
1
8
1
1
0
1
9
1
1
1
1
BASE 10 CÓD. BCD
BASE 10 CÓD. X3
A
B
C
D
N
8
4
2
1
N
N
A
B
C
D
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
2
0
1
0
1
2
0
0
1
0
3
0
1
1
0
3
0
0
1
1
4
0
1
0
0
4
0
1
1
1
5
0
1
0
1
5
1
0
0
0
6
0
1
1
0
6
1
0
0
1
7
0
1
1
1
7
1
0
1
0
8
1
0
0
0
8
1
0
1
1
9
1
0
0
1
9
1
1
0
0
BASE 10 CÓD. – X5
N
A
B
C
D
0
0
0
0
0
1
0
0
0
1
2
0
0
1
1
3
0
1
0
1
4
0
1
1
1
5
1
0
0
0
6
1
0
0
1
7
1
0
1
1
8
1
1
0
1
9
1
1
1
1
Pág. 2
BASE 8 CÓD. 4-2-1
N
4
2
1
N
A
B
C
0
0
0
0
1
0
0
1
2
0
1
0
3
0
1
1
4
1
0
0
5
1
0
1
6
1
1
0
7
1
1
1
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
A seguir apresentamos o código BCD-Gray
Código BCD – Gray
A
0
0
0
0
0
1
1
1
1
1
B
0
1
1
1
1
1
1
1
1
0
C
1
1
1
0
0
0
0
1
1
1
D
0
0
1
1
0
0
1
1
0
0
Tabela ASCII
O código ASCII (American Standard Code for Information Interchange) representa
uma maneira de codificar caracteres na forma de valores inteiros. Neste código, os
caracteres são mapeados para valores numéricos representáveis por sete dígitos binários
(bits). Este código abrange 95 caracteres passíveis de impressão e 33 caracteres
especiais utilizados, entre outros, no controle de comunicação entre computadores ou um
computador e seus periféricos.
A tabela abaixo descreve o padrão ASCII. Para obter o código interno, em decimal, você
soma o valor no início da linha onde se encontra o caractere desejado com o valor no
topo de sua coluna. Os 33 caracteres de controle são os de código 0 a 31 (NUL a US) e o
de código 127 (DEL).
00
16
32
48
64
80
96
112
0
@
P
`
p
0
NUL DLE
1
SOH DC1
!
1
A
Q
a
q
2
STX DC2
"
2
B
R
b
r
3
ETX DC3
#
3
C
S
c
s
4
EOT DC4
$
4
D
T
d
t
5
ENQ NAK
%
5
E
U
e
u
6
ACK SYN
&
6
F
V
f
v
Pág. 3
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
7
BEL ETB
'
7
G
W
g
w
8
BS CAN
(
8
H
X
h
x
9
HT
)
9
I
Y
i
y
EM
10
LF SUB
*
:
J
Z
j
z
11
VT ESC
+
;
K
[
k
{
12
FF
FS
,
<
L
\
l
|
13
CR GS
-
=
M
]
m
}
14
SO
RS
.
>
N
^
n
~
15
SI
US
/
?
O
_
o
DEL
O código da letra A, por exemplo, é 1 + 64 = 65.
* EBCDIC (Extended Binary Coded Decimal Interchange):
- usado em computadores de grande porte, desenvolvido pela IBM;
- utiliza 8 bits podendo representar 256 caracteres (28 caracteres)
ex: letra A: C1
bit1 bit2
bit3
1
1
0
bit4
0
bit5
0
bit6
0
bit7
0
bit8
1
ex: letra Z: E8
bit1 bit2
bit3
1
1
1
bit4
0
bit5
1
bit6
0
bit7
0
bit8
0
Bits
1234/5678
0000 (0)
0001 (1)
0010 (2)
0011 (3)
0100 (4)
0101 (5)
0110 (6)
0111 (7)
1000 (8)
1001 (9)
1010 (A)
1011 (B)
0000
(0)
NUL
SOH
STX
ETX
PF
HT
LC
DEL
0001
(1)
DLE
DC1
DC2
DC3
RES
NL
BS
IL
CAN
RFL EM
SMM CC
VT
0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(A) (B) (C) (D) (E)
(F)
DS
SP
&
{
}
\
0
SOS
a
j
~
A
J
S
1
FS SYN
b
k
s
B
K
T
2
c
l
t
C
L
U
3
BYP PN
d
m
u
D
M
V
4
LF
RS
e
n
v
E
N
W
5
ETB UC
f
o
w
F
O
X
6
PRE EOT
g
p
x
G
P
Y
7
h
q
y
H
Q
Z
8
i
r
z
I
R
9
SM
!
:
PAD
.
$
,
#
Pág. 4
1100 (C)
1101 (D)
1110 (E)
1111 (F)
FF
CR
SO
SI
IFS
DC4
IGS ENQ NAK
IRS ACK
IUS BEL SUB
<
(
+
|
*
)
;
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
%
@
‘
>
=
?
“
TRANSFORMAÇÃO DE UM NÚMERO DE UMA BASE QUALQUER PARA A BASE 10.
A transformação de um número de uma determinada base para a base 10 é calculada da
forma a seguir.
N = an-1 Bn-1 + an-2Bn-2 + an-3Bn-3 +, .......... + a1B1 + a0B0
Por exemplo para o número 1001, na base 2 convertido para a base 10, fica :
N = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 9, assim (1001)2 = (9)10.
Exemplo : Transformar o número na base (FFFF)16 para a base 10.
N = 15 x 163 + 15 x 162 + 15 x 161 + 15 x 160 = 65536, assim (FFFF)16 = (65536)10.
Exemplo : Transformar o número na base (AF3B)16 para a base 10.
N = 10 x 163 + 15 x 162 + 3 x 161 + 11 x 160 = , assim (AF3B)16 = (44.859)10.
Exemplo : Transformar o número na base (1234)16 para a base 10.
N = 1 x 163 + 2 x 162 + 3 x 161 + 4 x 160 = , assim (1234)16 = (4.660)10.
Exemplo : Transformar o número na base (3CDE)16 para a base 10.
N = 3 x 163 + 12 x 162 + 13 x 161 + 14 x 160 = , assim (3CDE)16 = (15.582)10.
Exemplo : Transformar o número na base (4567)16 para a base 10.
N = 4 x 163 + 5 x 162 + 6 x 161 + 7 x 160 = , assim (4567)16 = (17.767)10.
Exemplo : Transformar o número na base (4567)8 para a base 10.
N = 4 x 83 + 5 x 82 + 6 x 81 + 7 x 80 = , assim (4567)16 = (455)10.
Exemplo : Transformar o número na base (1234)8 para a base 10.
N = 1 x 83 + 2 x 82 + 6 x 81 + 7 x 80 = , assim (1234)8 = (695)10.
Exemplo : Transformar o número na base (751)8 para a base 10.
N = 7 x 82 + 5 x 81 + 1 x 80 = , assim (751)8 = (489)10.
Exemplo : Transformar o número na base (1101)2 para a base 10.
N = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = , assim (1101)2 = (13)10.
Pág. 5
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
Exemplo : Transformar o número na base (1111)2 para a base 10.
N = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = , assim (1111)2 = (15)10.
Exemplo : Transformar o número na base (1000)2 para a base 10.
N = 1 x 23 + 0 x 22 + 0 x 21 + 0 x 20 = , assim (1000)2 = (8)10.
Exemplo : Transformar o número na base (0101)2 para a base 10.
N = 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = , assim (0101)2 = (5)10.
Exemplo : Transformar o número na base (0001)2 para a base 10.
N = 0 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = , assim (0001)2 = (1)10.
Exemplo : Transformar o número na base (1100)2 para a base 10.
N = 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20 = , assim (1100)2 = (12)10.
TRANSFORMAÇÃO DOS BÚMEROS DA BASE 10 PARA QUALQUER PARA UMA
OUTRA BASE
Para transformar um número na base 10 para uma outra base qualquer, o método é da
divisão sucessiva do número. O exemplo a seguir de conversão por divisões sucessivas é
apresentado e em seguida, o algorítmo mostra como chegar no número final convertido
para a base desejada.
Exemplo : Converter o número (451)10 para a base 4.
451
4
051
11
03
112 4
32 28
0 0
O número (451)10 convertido na base 4 será : (13003)4
4
7
3
4
1
1
4
0
Dígito MSB
Pág. 6
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
N = n.o na base 10
m = Base desejada
i=0
Q = INT (N / m)
R(i) = N - m.Q
N=Q
i=i+1
≠
Q=0
=
Número = R(0),R(1),..R(j)
Convertido
Exemplo : Transformar o número (1130)10 para a base 2.
Utilizando o método das divisões sucessivas, teremos :
1130 2
13 565
10 16
0 05
1
2
282 2
08 141 2 2
02 01 70
1 10 35 2
0
0 15 17
1
1
O número convertido é : (10001101010)2
2
8
0
Sentido de leitura
2
4 2
0 2 2
0 1 2
1 0
CODIFICAÇÃO DOS COEFICIENTES DOS NÚMEROS NAS BASES DE 2 A 16.
Para operar com os números em computador, devemos codificar esses números em
binário, pois é a linguagem que o computador entende. A seguir apresentamos os
coeficientes dos números em diversas bases codificados em binário.
a) Base 2 – Para os números na base 2, os coeficientes são 0 e 1. Para codificar em
binário dois números, 0 e 1 é necessário um único bit (0,1).
BASE 2
Codificação binária
0
0
1
1
Pág. 7
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
b) Base 3 – Para os números na base 3, os coeficientes sáo 0,1 e 2. Para codificar em
binário 03 números, 0,1 e 2 são necessários 02 bits (0-00, 1-01, 2-10).
BASE 3
Codificação binária
0
00
1
01
2
10
c) Base 4 – Para os números na base 4, os coeficientes sáo 0,1,2 e 3. Para codificar em
binário 04 números, 0,1,2 e 3 são necessários 02 bits (0-00, 1-01, 2-10 e 3-10).
BASE 4
Codificação binária
0
00
1
01
2
10
3
11
d) Base 5 – Para os números na base 5, os coeficientes sáo 0,1,2,3 e 4. Para codificar
em binário 05 números, 0,1,2,3 e 4 são necessários 03 bits (0-000, 1-001, 2-010, 3-011 e
4-100).
BASE 5
Codificação binária
0
000
1
001
2
010
3
011
4
100
e) Base 6 – Para os números na base 6, os coeficientes sáo 0,1,2,3,4 e 5. Para codificar
em binário 6 números, 0,1,2,3,4 e 5 são necessários 03 bits (0-000, 1-001, 2-010, 3-011,
4-100 e 5-101).
BASE 6
Codificação binária
0
000
1
001
2
010
3
011
4
100
5
101
f) Base 7 – Para os números na base 7, os coeficientes sáo 0,1,2,3,4,5 e 6. Para codificar
em binário 07 números, 0,1,2,3,4,5 e 6 são necessários 03 bits (0-000, 1-001, 2-010,
3-011, 4-100, 5-101, 6-110).
BASE 7
Codificação binária
0
000
1
001
2
010
3
011
4
100
5
101
6
110
g) Base 8 – Para os números na base 8, os coeficientes sáo 0,1,2,3,4,5,6 e 7. Para
codificar em binário 08 números, 0,1,2,3,4,5,6 e 7 são necessários 03 bits (0-000, 1-001,
2-010, 3-011, 4-100, 5-101, 6-110 e 7-111).
BASE 8
Codificação binária
0
000
1
2
3
4
5
6
7
001 010 011 100 101 110 111
h) Base 9 – Para os números na base 9, os coeficientes sáo 0,1,2,3,4,5,6,7, e 8. Para
codificar em binário 03 números, 0,1,2,3,4,5,6,7 e 8 são necessários 04 bits (0-0000,
1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111 e 8-1000).
BASE 9
0
1
2
3
4
5
6
7
8
Codificação binária 0000 0001 0010 0011 0100 0101 0110 0111 1000
Pág. 8
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
i) Base 10 – Para os números na base 10, os coeficientes sáo 0,1,2,3,4,5,6,7,8, e 9. Para
codificar em binário 10 números, 0,1,2,3,4,5,6,7,8 e 9 são necessários 04 bits (0-0000,
1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111, 8-1000 e 9-1001).
BASE 10
0
1
2
3
4
5
6
7
8
9
Codificação binária 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
j) Base 11 – Para os números na base 11, os coeficientes sáo 0,1,3,4,5,6,7,8,9 e A. Para
codificar em binário 11 números, 0,1,2,3,4,5,6,7,8,9 e A são necessários 04 bits (0-0000,
1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111, 8-1000, 9-1001 e A-1010).
BASE 10
Codificação binária
0
0000
1
0001
2
3
0010 0011
4
0100
5
0101
6
7
0110 0111
8
1000
9
1001
A
1010
k) Base 12 – Para os números na base 12, os coeficientes sáo 0,1,2,3,4,5,6,7,8,9,10 e
11. Para codificar em binário 12 números, 0,1,2,3,4,5,6,7,8,9,A e B são necessários 04
bits (0-0000, 1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111, 8-1000, 9-1001,
A-1010, B-1011).
BASE 12
Codificação binária
BASE 12
Codificação binária
0
0000
6
0110
1
0001
7
0111
2
3
0010 0011
8
9
1000 1001
4
0100
A
1010
5
0101
B
1011
l) Base 13 – Para os números na base 13, os coeficientes sáo 0,1,2,3,4,5,6,7,8,9,A,B e C.
Para codificar em binário 12 números, 0,1,2,3,4,5,6,7,8,9,A,B e C são necessários 04 bits
(0-0000, 1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111, 8-1000, 9-1001,
A-1010, B-1011 e C-1100)
BASE 13
Codificação binária
BASE 13
Codificação binária
0
0000
6
0110
1
0001
7
0111
2
3
0010 0011
8
9
1000 1001
4
0100
A
1010
5
0101
B
1011
C
1100
m) Base 14 – Para os números na base 14, os coeficientes sáo 0,1,2,3,4,5,6,7,8,9,A,B,C
e D. Para codificar em binário 14 números, 0,1,2,3,4,5,6,7,8,9,A,B,C e D são necessários
04 bits (0-0000, 1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111, 8-1000, 9-1001,
A-1010, B-1011, C-1100 e D-1101).
BASE 14
Codificação binária
BASE 14
Codificação binária
0
0000
7
0111
1
0001
8
1000
2
3
0010 0011
9
A
1001 1010
4
0100
B
1011
5
0101
C
1100
6
0110
D
1101
n) Base 15 – Para os números na base 15, os coeficientes são 0,1,2,3,4,5,6,7,8,9,A,B,C,
D e E. Para codificar em binário 15 números, 0,1,2,3,4,5,6,7,8,9,A,B,C,D e E são
necessários 04 bits (0-0000, 1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111,
8-1000, 9-1001, A-1010, B-1011, C-1100, D-1101 e E-1110).
BASE 15
Codificação binária
BASE 15
Codificação binária
0
0000
7
0111
1
0001
8
1000
2
3
0010 0011
9
A
1001 1010
Pág. 9
4
0100
B
1011
5
0101
C
1100
6
0110
D
E
1101 1110
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
o) Base 16 – Para os números na base 15, os coeficientes são 0,1,2,3,4,5,6,7,8,9,A,B,C,
D e E. Para codificar em binário 15 números, 0,1,2,3,4,5,6,7,8,9,A,B,C,D e E são
necessários 04 bits (0-0000, 1-0001, 2-0010, 3-0011, 4-0100, 5-0101, 6-0110, 7-0111,
8-1000, 9-1001, A-1010, B-1011, C-1100, D-1101, E-1110 e F-1111).
BASE 16
Codificação binária
BASE 16
Codificação binária
0
0000
8
1000
1
0001
9
1010
2
3
0010 0011
A
B
1010 1011
4
0100
C
1100
5
0101
D
1101
6
7
0110 0111
E
F
1110 1111
TRANSFORMAÇÃO ENTRE NÚMEROS DE BASES MÚLTIPLAS DE POTÊNCIA DE 2
A transformação entre números de bases múltiplas de potência de 2 é uma transformação
direta sem a necessidade de divisão sucessivas para a conversão do número. Os
coeficientes das bases convertidos no código binário, serão transformados para as bases
múltiplas da potência de 2.
1) Conversão de um número na base (1000)2. A conversão da base 2 para a base 4 não
necessita converter o número na base 2 para a base 10 e depois converter para a base 4.
A conversão é direta, a base 4 são necessários 2 bits de representação, assim o número
na base 2 deve ser dividido de 02 em 02 casas começando do lado direito para o
esquerdo do número.
10 ! 00
2
0
Dividindo-se em 02 casas o dígito mais significativo o código é 10 que é igual a 2 e o
dígito menos significativo o código é 00 que é igual a 0, assim o número convertido para a
base 4 será (20)4.
2) Conversão de um número na base (100100)2. A conversão da base 2 para a base
não necessita converter o número na base 2 para a base 10 e depois converter para
base 8. A conversão é direta, a base 8 são necessários 3 bits de representação, assim
número na base 2 deve ser dividido de 03 em 03 casas começando do lado direito para
esquerdo do número.
8
a
o
o
100 ! 100
4
4
Dividindo-se em 03 casas o dígito mais significativo o código é 100 que é igual a 4 e o
dígito menos significativo o código é 100 que é igual a 4, assim o número convertido para
a base 8 será (44)8.
3) Conversão de um número na base (321)4. A conversão da base 4 para a base 8 não
necessita converter o número na base 4 para a base 10 e depois converter para a base 8.
A conversão é direta, a base 8 são necessários 3 bits de representação, assim o número
na base 4 deve ser codificado e dividido de 03 em 03 casas começando do lado direito
para o esquerdo do número.
O número (321)4 codificado em binário é : 11 01 01
Pág.10
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
110 ! 101
6
5
Dividindo-se em 03 casas o dígito mais significativo o código é 110 que é igual a 6 e o
dígito menos significativo o código é 101 que é igual a 5, assim o número convertido para
a base 4 será (65)8.
4) Conversão de um número na base (764)8. A conversão da base 8 para a base 16 não
necessita converter o número na base 8 para a base 10 e depois converter para a base
16. A conversão é direta, a base 16 são necessários 4 bits de representação, assim o
número na base 8 com 03 bits por dígito, deve ser codificado e dividido de 04 em 04
casas começando do lado direito para o esquerdo do número.
O número (764)8 codificado em binário é : 111 110 100
1 ! 1111 ! 0100
1
F
4
Dividindo-se em 04 casas o dígito mais significativo o código é 1 que é igual a 1 e o dígito
intermediário 1111 que é igual a F e o menos significativo com o código é 0100 que é
igual a 4, assim o número convertido para a base 16 será (1F4)16.
5) Conversão de um número na base (764)16. A conversão da base 16 para a base 8 não
necessita converter o número na base 16 para a base 10 e depois converter para a base
8. A conversão é direta, a base 8 são necessários 3 bits de representação, assim o
número na base 16 com 04 bits por dígito, deve ser codificado e dividido de 03 em 03
casas começando do lado direito para o esquerdo do número.
O número (764)16 codificado em binário é : 0111 0110 0100
011 ! 101 ! 100 ! 100
3
5
4
4
Dividindo-se em 03 casas o dígito mais significativo o código é 011 que é igual a 3 e o
dígito intermediário 101 que é igual a 5 o próximo 100 que é igual a 4 e o menos
significativo com o código é 100 que é igual a 4, assim o número convertido para a base 8
será (3544)8.
6) Conversão de um número na base (764)16. A conversão da base 16 para a base 2 não
necessita converter o número na base 16 para a base 10 e depois converter para a base
2. A conversão é direta, a base 2 são necessários 1 bit de representação, assim o número
na base 16 com 04 bits por dígito, deve ser codificado e não dividido em casas.
O número (764)16 codificado em binário é : 0111 0110 0100 é o próprio na base 2.
OUTRAS CONVERSÕES ÑÃO ENTRE BASES MÚLTIPLAS DE POTÊNCIA DE 2.
1) Conversão de um número na base 3 (2122)3 para base 7.
A forma mais fácil de conversão é :
Pág.11
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
a) Transformar o número da base 3 para a base 10 aplicando a expressão de
transformação conhecida.
b) Com o número em decimal dividir este por 7, até que o quociente seja igual a zero.
c) Ler os coeficientes do número pelos restos das divisões sucessivas iniciando do último
resto para o primeiro resto que será o número convertido na base 7.
N = 2 x 33 + 2 x 32 + 2 x 31 + 2 x 30.
N = (80)10 , o número 80 será convertido na base 7.
80 7
10 11
3 4
O número convertido é : (143)7
7
1
1
7
0
CODIFICAÇÃO DE NÚMEROS FRACIONÁRIOS DE UMA BASE QUALQUER
Os números inteiros vimos como transformar e representar em uma determinada base,
agora quando os números são fracionários como são representados.
Para os números fracionários a representação em uma determinada base é idêntica à
representada na base 10. Coloca-se uma virgula à direita do número inteiro e na parte
fracionária colocamos os coeficientes do número. Por exemplo na base decimal o primeiro
coeficiente ã direita da virgula, portanto a parte fracionária do número tem peso igual a
1/10 ou 0,1 e assim por diante o segundo 1/100, o terceiro 1/1000. Ou seja a notação
para a parte fracionária ficará :
N = ,1/B1 + 1/B2 + 1/B3 + 1/B4 ou representado por B-1 + B-2 + B-3 + B-4 +.........+ B-n .
Exemplo : O número (21221,012)3, a parte inteira é 21221 e a parte fracionária do
número é 012.
Exemplo : O número (10110,011)2 , onde a parte inteira do número é 10110 e a parte
fracionária do número é 011.
Para converter o número na base 10 aplicamos para a parte inteira a expressão de
transformação conhecida e da mesma forma para a parte fracionária, não esquecendo
que na parte fracionária a base é elevada a potência negativa.
Exemplo : Para o número (1001),10101)2 será convertido como :
N = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 + 0 x 2-4 + 1 x 2-5
N = 9,65625
Observar que a conversão do número fracionário para a base 10 será sempre uma
aproximação sucessiva do número, pois um número pode ser representado uma dizima
periódica, como ,101 101 101....101.
Exemplo : Converter o número (321,221)4 para a base 10.
N = 3 x 42 + 2 x 41 + 1 x 40 + 2 x 4-1 + 2 x 4-2 + 1 x 4-3 = 57,640625
Pág.12
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
Exemplo : Converter o número (753,642)8 para a base 10.
N = 7 x 82 + 5 x 81 + 3 x 80 + 6 x 8-1 + 4 x 8-2 + 2 x 8-3 = 491,81640625
CONVERSÃO DE UM NÚMERO FRACIONÁRIO NA BASE 10 PARA UMA BASE
QUALQUER
A conversão de um número na base 10 para uma outra base é realizado para números
inteiros como uma divisão pela base a ser convertida. No caso de números fracionários o
processo deve ser o mesmo divisão sucessiva pela base, porém como a base é 1/B, a
divisão por 1/B se torna uma multiplicação. O exemplo a seguir mostra uma conversão do
número N = (6,75)10 para a base 2.
A parte inteira do número N = 6, convertida para binário será : 110
A parte fracionária dp número N = ,75 será convertida como :
1)
2)
3)
4)
5)
Multiplica-se a parte fracionária pela base que se quer converter.
O resultado da multiplicação a esquerda da vírgula item 3 ou 4;
Se for menor do que a base é 0 e
Se for maior do que a base é 1 e
Continuar a multiplicação com o número a dreita da vírgula só considerando a parte
fracionária até que o resultado a direita da vírgula seja igual a 0 se não
6) Volte ao item 2.
0,75
x2
1 ,50
x2
Resultado
Resultado
1 ,00
a esquerda
a
direita da
da vírgula
vírgula
A primeira multiplicação gerou um bit (MSB) da parte fracionária o bit =1 e o resultado a
direita = ,50. Continua a multiplicação, onde é gerado o segundo bit =1 e o resultado a
direita igual a zero, oque encerra a conversão. Assim o número convertido será :
(110,11)2.
N = n.o na base 10
m = Base desejada
i=0
Pág.13
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
Res = (N * m)
direita
Res(i) = bit a
esquerda
i=i+1
≠
Res = 0
dir
=
Número Convertido =
Res(1),Res(2)..... Res(n)
Exemplo : Converter o número (1,2)10 para a base 3.
A parte inteira é 1 convertida para a base 3, são necessários 2 bits para representação,
assim = 01. Para a parte fracionária ,2 as multiplicações sucessivas convertem o número
obedecendo ao procedimento.
,2
,6
,8
x3
x3
x3
  
,6
1 ,8
2 ,4
,4
x3

1,2
O número convertido N = 1,121121...121... uma dízima periódica.
Exemplo : Converter o número (7,643)10 para a base 8.
A parte inteira é 7 convertida para a base 8, são necessários 3 bits para representação,
assim = 111. Para a parte fracionária ,643 as multiplicações sucessivas convertem o
número obedecendo ao procedimento.
,7
,6
,8
,4
,3
x8
x8
x8
x8
x8
    
5 ,6
4 ,8
6 ,4
3,2
2 ,4
O número convertido N = 7,546323232...32... uma dízima.
CONVERSÃO ENTRE BASES MÚLTIPLAS DE POTÊNCIA DE 2 PARA NÚMEROS
FRACIONÁRIOS
A conversão entre bases múltiplas de potência de 2 para os números fracionários, como
na parte inteira, não necessita de multiplicação pois a conversão é direta.
Pág.14
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
Exemplo : Converter o número na base 4 (2,321)4 para a base 2.
Inicialmente codifique os coeficientes em binário como a seguir. Como na base 4 são 02
bits para cada dígito, a representação fica :
2 , 3 2 1→ base 4
1 0, 11 10 01
A conversão é direta, resultando o número na base 2 (10,111001)2.
Exemplo : Converter o número na base 4 (2,321)4 para a base 8.
2, 3
2 1→ base 4
1 0, 11 10 01, para a base 8 são 03 bits necessários para a
representação, assim o número codificado, fica :
2 7 1 → base 8
010,111 001
O número na base 8, será 2,71
REPRESENTAÇÃO DOS NÚMEROS
Os números podem ser representados com ou sem sinal o qual chamamos de números
assinalados e não assinalados. A forma de representar os números assinalados, podem
ser : Representação em sinal e amplitude, complemento 2 e complemento 1, em ponto
fixo ou ponto flutuante.
a) Representação em Sinal e Amplitude.
A representação em sinal amplitude utiliza o bit mais significativo para indicar o sinal e os
bits restantes para indicar a amplitude do sinal. Para o bit de sinal se igual a “0” o número
é positivo se igual a “1” o número é negativo. Para um dado número de bits iguais a n,
sendo 1 bit reservado para o sinal e n-1 restante é para a amplitude do sinal, então a faixa
de extensão de um número de n bits será :
- 2n-1 ≤ N ≤ +2n-1
Exemplo : Para o número de 4 bits na representação sinal e amplitude será :
N
-7
-6
-5
-4
-3
-2
-1
-0
+0 +1 +2 +3 +4 +5 +6 +7
Pode-se varificar que (– 0) é um problema e a máquina deverá identificar e corrigir pois
numa operação por exemplo de subtração entre 02 números assinalados o resultado
pode dar (– 0) o que seria um erro. Esta representação não é utilizada em virtude deste
problema pois descartando o (- 0) perde-se um número na faixa de operação com isso
nesta representação a faixa de operação é menor que outras representações e a
extensão é menor. Por exemplo (- 0) poderia ser o (- 8) e assim a extensão do número
seria maior.
b) Representação em complemento de 1
Pág.15
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
A representação em complemento 1 é utilizada pela facilidade de operar com números
negativos nas operações de subtrações. Vemos que para os números positivos não há
mudança em relação aos números em sinal amplitude. Na representação em
complemento 1 de números negativos, os números são obtidos pela inversão de todos os
bits, inclusive o sinal. A faixa de operação dos números em complemento 1 segue :
- 2n ≤ N ≤ +2n-1
Para 4 bits
Exemplo : Para o número de 4 bits na representação complemento 1 será :
N
-7
-6
-5
-4
-3
-2
-1
-0
+0 +1 +2 +3 +4 +5 +6 +7
Pode-se varificar que (– 0) é um problema e a máquina deverá identificar e corrigir pois
numa operação por exemplo de subtração entre 02 números assinalados o resultado
pode dar (– 0) o que seria um erro. Esta representação não é utilizada em virtude deste
problema pois descartando o (- 0) perde-se um número na faixa de operação com isso
nesta representação a faixa de operação é menor que outras representações e a
extensão é menor. Por exemplo (- 0) poderia ser o (- 8) e assim a extensão do número
seria maior.
c) Representação em complemento de 2
A representação em complemento 2 é a mais utilizada pela facilidade de operar com
números negativos nas operações de subtrações. Vemos que para os números positivos
não há qualquer mudança com a representação em sinal amplitude. Os números
negativos são obtidos na representação de complemento 2 fazendo o complemento 1 do
número positivo, inclusive o sinal e somando-se 01 ao resultado.
A faixa de extensão de um número de n bits será : - 2n-1 ≤ N ≤ +2n-1
Exemplo : Para o número de 4 bits na representação complemento 1 será :
N
-8
-7
-6
-5
-4
-3
-2
-1
+0 +1 +2 +3 +4 +5 +6 +7
Por exemplo : O número +(96)10 = +(01100000) este número negativo seria . Para se
obter o complemento 2 do número :
1) Achar o complemento 1;
2) Somar 01 unidade ao número complementado.
N = (10011111) + 01 = (10100000) = -(96)10
d) Representação de números fracionários negativos em complemento 2
O número é (01011,10)2
Complemento 2 = 10101,01
Pág.16
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
REPRESENTAÇÃO DE DADOS EM PONTO FLUTUANTE
Os números reais representando os dados numéricos podem ser fracionários (tais como
14,212). Como é representar a parte fracionária do número, representada (após a vírgula
que é a separação da parte inteira), de forma que permita no computador o seu
armazenamento e também ocupe um pequeno volume de memória ?.
NÚMEROS REAIS
Os números reais são números que possuem parte inteira e fracionária (por exemplo,
14,212). O formato de representação desses números da parte inteira, vírgula (ou ponto)
e da parte fracionária, é apresentado a seguir :
Por exemplo : 123, 012, sendo 123 a parte inteira e 012 a parte fracionária do número.
Nem toda a notação que serve para representar os números é adequada para um
processamento no computador. É necessário uma representação dos números, de tal
forma que os números possam ser expressos sem uma perda significativa de precisão e
de intervalo numérico.
REPRESENTAÇÃO EM PONTO FLUTUANTE
Consideremos o número 14,212 do exemplo. Este número pode ser também expresso
como 12,212 x 100 e também ser expresso como 14212 x 10-3 ou ainda 0,14212 x 102. Na
realidade, qualquer número, inteiro ou fracionário, pode ser expresso neste formato
número x base expoente, no qual se varia dois parâmetros : a posição da vírgula (que
delimita a parte fracionária) e a potência à qual se eleva na base. Essa representação é
denominada representação em ponto flutuante, pois o ponto varia sua posição,
modificando, em conseqüência, o valor representado.
REPRESENTAÇÃO NORMALIZADA
Na representação normalizada, o número é construído movendo a vírgula para a direita
ou para a esquerda de tal forma que o número seja menor do que 1, o mais próximo
possível de 1, multiplicado pela potência da base de forma a manter o valor próprio do
número. Em geral, isso significa que o primeiro dígito significativo seguirá imediatamente
ao ponto (ou vírgula).
Por exemplo :
14,21210 --> normalizando ==> 0,14212 x 102
0,000345610 --> normalizando ==> 0,3456 x 10-3
0,000011002 --> normalizando ==> 0,1100 x 2-4
De forma genérica, podemos representar a forma normalizada:
± número x base ±expoente
A parte do número representado dessa forma normalizada (os algarismos significativos),
damos o nome de mantissa.e portanto podemos representar:
± 0,M x B ± e
onde M é a mantissa, B é a base e e é o expoente.
Pág.17
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
REPRESENTAÇÃO DE NÚMEROS REAIS NO COMPUTADOR
Uma forma comum de representação de números reais no computador pode ser expressa
como segue:
01 BIT
SINAL DO
NÚMERO
01 BIT
SINAL DO
EXPOENTE
X BITS
Y BITS
EXPOENTE
DO NÚMERO
MANTISSA
Em virtude dos computadores operarem na base 2 pois os valores são “0 e 1”, não será
necessário na representação dos números reais, especificar a base pois se subentende
que a base é implícita.
O número total M de bits para a representação, depende do tipo de computador, sendo
distribuídos em : 01 bit para o sinal do número positivo ou negativo 01 bit para o sinal do
expoente, y bits para a mantissa e x bits para o expoente.
O número de bits do expoente, define a intervalo numérico que o computador pode
representar, assim quanto maior o número de bits, maior será o intervalo de
representação do número. Para a mantissa quanto maior o número de bits para a
mantissa, maior será a precisão na representação do número. Uma vez que no processo
de conversão de decimal para binário, a conversão é realizada na parte fracionária do
número através de uma aproximação e assim quanto maior o número de bits mais
próximo ao valor real do número. Porém, reduzindo-se a mantissa, perde-se em precisão
pois estaremos truncando o número (o erro de truncamento é quando limitamos o número
em um certo número de algarismo ou seja cortando os últimos algarismos significativos
que não podem ser representados).
Considerando-se a representação acima, na base implícita 2:
maior expoente possível e = 2x – 1, para x bits, tem-se 0 ≤ e ≤ 2x -1
maior mantissa possível = 2y – 1, para y bits, tem-se 0 ≤ e ≤ 2y -1
a) Intervalo de representação dos números positivos
Para N é representado de 0,100.000 x 2-e ≤ N ≤ + 0,111....111 x 2e
Sendo :
maior número real : +(0.111...1 x 2e) sendo e = 2x – 1
menor real positivo: +(0.100...0 x 2 -e sendo e = 2x – 1
b) Intervalo de representação dos números negativos
Para N é representado de - 0,100.000 x 2-e ≤ N ≤ - 0,111....111 x 2e
Sendo :
maior real negativo: -(0.100...0 x 2 -e sendo e = 2x – 1
menor número real: -(0.111...1 x 2e) sendo e = 2x – 1
INTERVALO DE REPRESENTAÇÃO DOS NÚMEROS
UNDERFLOW
OVERFLOW
Pág.18
0
OVERFLOW
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
-e
- 0,11...111 x 2e - 0,10...000 x 2
+ 0,10...000 x 2-e
+ 0,11...111 x 2+e
Pode-se observar facilmente que a representação em ponto flutuante tem limites de
intervalo numérico e de precisão em virtude do limitado número de bits do expoente. A
precisão é determinada pelo número de bits da mantissa.
Overflow ocorre quando o valor absoluto do dado a ser representado excede a
capacidade de representação, porque o número de bits do expoente (neste caso, positivo)
é insuficiente para representar o dado.
Um outro problema ocorre na região de números próximos de zero, que tem o maior
expoente negativo possível.
Underflow ocorre quando o valor absoluto do dado a ser representado é tão pequeno que
fica menor que o menor valor absoluto representável. Quando os números são muito
próximos a zero sendo o expoente negativo, não há representação desses números e
ocorre uma descontinuidade na representação.
Observação : Não se deve confundir o arredondamento para a normalização do número
a ser representado ocorrendo imprecisão com underflow o qual ocore quando os dados
na faixa do underflow não podem ser representados em virtude do estouro do expoente.
CARACTERÍSTICA
Característica é o expoente, representado na forma de excesso de n, ou seja,
CARACTERÍSTICA = EXPOENTE + EXCESSO
A representação substituindo expoente por característica implica que todas as
características serão positivas, de forma que é possível eliminar a representação do sinal
do expoente.
Se CARACTERÍSTICA = EXPOENTE + EXCESSO,
sendo M o número de bits para a representação da característica, temos:
0 = - 2M-1 + EXCESSO ⇒ EXCESSO = + 2M-1
EXEMPLO DE REPRESENTAÇÃO EM PONTO FLUTUANTE
Pág.19
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
a) Representação no IBM /370
b) A família IBM /370 representa os dados em ponto flutuante com base implícita =
16, no seguinte formato:
sendo
SN = sinal do dado
CARACTERÍSTICA = o expoente, representado na forma de excesso de n, ou seja,
CARACTERÍSTICA = EXPOENTE + EXCESSO
No caso da IBM, o excesso é de 6410, portanto: CARACTERÍSTICA = EXPOENTE + 6410
Exemplificando: expoente = 810, logo característica = 810 + 6410 = 7210
Assim, uma característica entre 0 e 6310 significa que o expoente é negativo, enquanto
uma característica entre 65 e 127 significa que o expoente é positivo (característica igual
a 6410 significa expoente igual a 0)..
Exemplo: Representar (25,5)10
Como a base implícita é 16, vamos converter para hexadecimal: 25 / 16 = 1, resto 9 logo:
(25)10 = (19)16
Parte fracionária: 0.5 x 16 = 8,0
Logo: (25,5)10 = (19,8)16 x 160
Normalizando: (19,8)16 x 160 = (0,198)16 x 162. Em binário com 24 bits, a mantissa
normalizada será:
0,19816 = 0001.1001.1000.0000.0000.0000
Obs.: Como o número 0,19816 será representado em 24 bits, os bits não representativos
(à direita) serão preenchidos com zeros.
Como o expoente é 2, a característica será: 210 + 6410 = 6610. Em binário com 7 bits, será:
100.0010
Portanto, a representação será:
b) Representação no PDP 11
Os microcomputadores PDP 11 representam os dados em ponto flutuante com base
implícita = 2, no seguinte formato:
Pág.20
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
sendo
SN = sinal do dado
CARACTERÍSTICA = o expoente, representado na forma de excesso de n, ou seja,
CARACTERÍSTICA = EXPOENTE + EXCESSO
No caso do PDP 11, o excesso é de 12810, portanto: CARACTERÍSTICA = EXPOENTE + 12810
Exemplificando: expoente = - 28 logo característica = - 2810 + 12810 = 10010
Assim, uma característica entre 0 e 12710 significa que o expoente é negativo, enquanto
uma característica entre 129 e 255 significa que o expoente é positivo (característica igual
a 1280 significa expoente igual a 0).
Exemplo: Representar 25,510
Como a base implícita é 2, vamos converter para binário: 2510 = 110012
Parte fracionária: 0.5 x 2 = 1,0
Logo: 25,510 = 11001,12 x 20
Normalizando: 11001,12 x 20 = 0,1100112 x 25.
Obs.: Como a base implícita no PDP 11 é 2, o número normalizado começará SEMPRE
por 0,1. Assim, como o primeiro dígito da mantissa será sempre 1, o PDP 11 economiza
um bit na mantissa não armazenando o primeiro bit da mantissa, já que está implícito
que todos os números terão mantissa iniciando com 1. O bit economizado dessa forma
permite que, embora a mantissa no PDP seja representada com 23 bits e no IBM /370
com 24 bits, a precisão na representação é a mesma.
Obs.1: Leia-se o SEMPRE da obs. acima como quase sempre. A única exceção corre
por conta do zero, que nesse caso tem um tratamento especial.
Em binário com 23 bits, a mantissa normalizada será (lembrando que o primeiro bit 1 não
é representado):
0,1100112 = 100.1100.0000.0000.0000.0000
Obs.: Como o número 0,1100112 será representado em 23 bits, os bits não
representativos (à direita) serão preenchidos com zeros.
Como o expoente é 5, a característica será: 510 + 12810 = 13310. Em binário com 8 bits,
será: 1000.0101
Portanto, a representação será:
Exercício: Qual das representações de ponto flutuante nos dois computadores
exemplificados acima tem o maior alcance?
Resp.: O alcance de uma representação depende do valor da base implícita, elevado ao
maior valor que a característica pode assumir.
Pág.21
Prof. Luís Caldas
Sistemas de Numeração e Transformação de Base
O maior alcance será o que tiver o maior valor de Be ou seja, base elevada ao maior valor
possível da característica.
O IBM /370 tem 7 bits para característica (maior característica = 63) e base implícita 16,
portanto 1663 = (24) 63 = 2252
O PDP tem 8 bits para característica (maior característica = 127) e base implícita 2,
portanto 2127
Conclusão: A representação em ponto flutuante do IBM /370 tem maior alcance que a do
PDP 11.
Pág.22
Download