A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Binário, Hexadecimal, Decimal

Apresentações semelhantes


Apresentação em tema: "Binário, Hexadecimal, Decimal"— Transcrição da apresentação:

1 Binário, Hexadecimal, Decimal
CRD Filipe Pacheco

2 Representação de números
O João tem 118 maçãs no camião 118 Cento e Dezoito CXVIII

3 Sistema Decimal Base 10 Dígitos: 0 a 9 Exemplo: 118
1x x = 118 1x x x100 = 118 118/100 = 1.18 (resto: 18) 18/10 = 1.8 (resto: 8) 8/1= 8 (resto: 0)

4 Sistema Hexadecimal Base 16 Em VisualBasic usa-se o prefixo &H
Também é comum noutras linguagens o prefixo 0x Dígitos: 0 a 9 e A a F Exemplo: &H118 ou 0x118 1x x x160 = = 280 280/256 = (resto: 24) 24/16 = 1.5 (resto: 8) 8/1= 8 (resto: 0)

5 Sistema Binário Base 2 Não existe representação directa no VisualBasic
Algumas linguagens usam o prefixo 0b Dígitos: 0 e 1 Exemplo: 0b101 1x22 + 0x21 + 1x20 = = 5 5/4 = 1.25 (resto: 1) 1/2 = 0.5 (resto: 1) 1/1= 1 (resto: 0)

6 Porquê Sistema Binário?
Porque os computadores trabalham apenas com dois níveis internamente. Todos os cálculos são feitos, em última análise, em sistema binário. Os dados são armazenados em bits (que têm o valor 0 ou valor 1) Nas comunicações entre dispositivos também é usado o sistema binário Normalmente os bits são agrupados em conjuntos de 8, chamados bytes

7 Bytes e bits Um byte pode guardar desde o valor 0b (0 decimal) até 0b (256 decimal) Também é possível guardar números negativos, por exemplo, usando o primeiro bit como bit de sinal (há outras alternativas) 0b (-5 decimal) 0b (5 decimal) Para processar correctamente os dados temos de saber de antemão qual a codificação 0b também pode representar 133 decimal

8 MSB / LSB Quando se representa um número é normal colocar o bit mais significativo (MSB – More significant bit) do lado esquerdo e o bit menos significativo (LSB – Less significant bit) do lado direito, tal como o fazemos ao escrever números decimais MSB LSB

9 MSB/LSB Quando guardamos em memória os dados existem diversas alternativas para a ordem do MSB e LSB, especialmente quando guardamos dados com mais de um byte O mesmo se passa quando transmitimos dados… por exemplo, num sistema em que só podemos enviar um bit de cada vez temos de escolher previamente se enviamos primeiro o MSB ou o LSB

10 Acima dos Bytes Um byte pode guardar directamente um valor inteiro entre 0 e 255 ou entre -127 e 127 (ou 128) Se tivermos um conjunto de caracteres com menos de 256 alternativas (como é o caso de ASCII) também podemos guardar uma letra num byte Mas como guardar valores maiores? E com vírgulas? Ou caracteres UNICODE (com milhares alternativas no conjunto base)

11 Inteiros Byte: 0 a 255 (1 byte) Char* e UShort: 0 a 65535 (2 bytes)
Integer: -2,147,483,648 a 2,147,483,647 (4 bytes) Long: -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (8 bytes) SByte: -128 a 127 (1 byte) Short: -32,768 a 32,767 (2 bytes) UInteger: 0 a 4,294,967,295 (4 bytes) ULong: 0 a 18,446,744,073,709,551,615 (8 bytes) *o VB é baseado em UNICODE de 16 bits

12 Vírgula Flutuante Em vez de guardar o valor exacto inteiro guardamos uma parte inteira e expoente. Em decimal o equivalente é usar representações como 23E40 que é igual ao número 23 seguido de 40 zeros (neste caso o expoente é 40) Quer o expoente quer os dígitos significativos podem ser negativos O problema é que os números passam a ter uma imprecisão… e.g. se fizermos num computador 10E E100 obtemos… 0 e não 1 Experimentar no Google Search procurar por “1e e100” e ver o resultado

13 Binário e Hexadecimal A vantagem do sistema Hexadecimal é que é de conversão directa para o sistema Binário pois 16 = 24. Ou seja: cada dígito hexadecimal corresponde a quatro dígitos binários 0b = 0x8CF4 0 – 0000 6 – 0110 C – 1100 1 – 0001 7 – 0111 D – 1101 2 – 0010 8 – 1000 E – 1110 3 – 0011 9 – 1001 F – 1111 4 – 0100 A – 1010 5 – 0101 B – 1011

14 MSB e LSB com multi-byte
Com valores guardados em mais de um byte as coisas complicam-se em termos de MSB / LSB E.g. 0xFFAA1100 Notavelmente os computadores baseados em PowerPC ou Motorola (como os Apple mais antigos) guardam os bytes por ordem diferente dos Intel (PCs). Por incrível que pareça os Arm (usados em muitos PocketPCs e telemóveis) usam uma ordem diferente dos outros dois. 00 11 AA FF Endereços crescentes FF AA 11 00

15 Calculadora Google 0x1002  Número Hexadecimal 0b1001  Número Binário
Para converter entre sistemas usar o operador “in”, eg: 1400 in hex  0x578 1400 in binary  0b 0x1002 in decimal  4098 Para calcular o resto da divisão inteira usar % (e.g. 52%10  2)

16 Exercícios Calcular “à mão” (em papel) os valores decimais de:
0b1001 0b 0b &H1001 &HA0 &HA01A Podem utilizar a calculadora para os valores intermédios Verificar os resultados com o Google

17 Exercícios Calcular “à mão” (em papel) os valores hexadecimais de:
0b1001 0b 0b 0b 1023

18 Exercícios Calcular “à mão” (em papel) os valores binários de: 1023
&H1001 &HA0 &HA01A &HFF00FF00FF00

19 Exercícios Quais dos seguintes valores podem ser guardados numa variável do tipo Byte? 1000 0b 0b 0xAAF010AAFF 0x1CAAF010AAFF11 E se for UInteger? E se for ULong?


Carregar ppt "Binário, Hexadecimal, Decimal"

Apresentações semelhantes


Anúncios Google