Notas de Aula - MAC 211 - Laboratório de Programação
Aula anterior (aula 1)
Aula 2 - 1/3/2002
-
Por que programar em linguagem de montagem?
-
Por que nao programar em linguagem de montagem?
-
Sistemas de numeracao
-
Decimal
-
123 = 1*10**2 + 2 * 10**1 + 3*10**0 = 100 + 20 + 3
-
123.456 = 1*10**2 + 2*10**1 + 3*10**0 + 4*10**-1 + 5*10**-2 + 6*10**-3
-
Binario
-
11001010 = 1*2**7 + 1*2**6 + 0*2**5 + 0*2**4 + 1*2**3 + 0*2**2 + 1*2**1
+ 0*2**0 = 128 + 64 + 8 + 2 = 202 (na base 10)
-
Exercicio: converter 3 numeros de 8 bits para decimal
-
Exercicio: converter um numero de 16 bits para decimal (calcular os 2 bytes
em separado, depois multiplicar o mais significativo por 256 e somar o
menos significativo)
-
Exercicio: converter 3 numeros decimais para binario (professor faz o primeiro)
-
converter 2725 -> 2725/2 = 1362 -> 681 -> 340 -> 170 -> 85 -> 42 -> 21
-> 10 -> 5 -> 2 -> 1
-
portanto 2725 (decimal) = 101010100101 (binario) = 1+4+32+128+512 +2048
-
outra forma de calcular para quem sabe as pontências de 2 de cor: qual
a potência de dois mais alta que cabe dentro do número a transformar? (e.g. 131)
-
alunos fazem outros dois numeros usando uma tecnica diferente em cada conversao
-
bits mais significativos
-
os 8 bits de um byte sao numerados de 0 a 7 da direita para a esquerda
-
Hexadecimal
-
digitos de 0 a F
-
exemplos: 1234 FEA DEAD BEEF 0AFB FEED DEAF
-
2B (hexa) = 2*16 + 11 (decimal) = 43 (decimal)
-
potencias: 1, 16, 256, 4096, 65536
-
137 (decimal): 137/16 = 8 sobram 9, entao 137 (decimal) = 89
-
conferir: 8*16 + 9 = 137, confere.
-
exercicios: converter dois numeros em cada direcao
-
hexadecimais sao usados pois sao bem compactos, sao faceis de converter
para binario e com dois digitos se representa exatamente um byte (nem mais
nem menos).
-
Calculadora calctool no Linux trabalha com bases 2, 8, 10 e 16.
Próxima aula (aula 3)
Página de MAC211
Página do Fabio
Página do DCC