Binário e Hexadecimal Como contam os computadores
Bit Unidade básica de medida dos computadores é o bit (binary digit), intoduzida por Claude Shannon, na sua obra Teoria Matemática da Computação, de 1948. Base de toda a linguagem usada pelos computadores, o sistema binário, ou de base dois (Ex.: Arquitetutas 32/64 bits) Graficamente é representado por duas alternativas possíveis: os algarismos 0 e 1.
Byte Designação introduzida pela IBM, em 1956. Representado por 8 bits, uma unidade completa de informação. O bit é geralmente usado como medida de velocidade na transmissão de dados. Ex: ligação à Internet a 100 Mbit/s (bps) corresponde a dizer que esta ligação consegue tx até 100 milhões de b/s. O byte é associado à capacidade de armazenamento de dados. Ex: disco rígido de 1 Terabyte tem 1x10 12 bytes de capacidade de armazenamento.
A diferença entre o Bit e o Byte
Word Agrupa um conjunto de bits, variável de acordo com a arquitetura de processamento Arquitetura 16 bit: word = 16 bit (2 Bytes) Arquitetura 32 bit: word = 32 bit (4 Bytes) Arquitetura 64 bit: word = 64 bit (8 bytes) Doubleword = 2* word Halfword = ½ word
Prefixos dos números binários A norma IEC 80000-13: Quantities and units Part 13: Information science and technology, publicada em 2008, define os seguintes prefixos binários: Fator Nome Símbolo Origem Derivação 2 10 kibi Ki kilobinary: (2 10 ) 1 kilo: (10 3 ) 1 2 20 mebi Mi megabinary: (2 10 ) 2 mega: (10 3 ) 2 2 30 gibi Gi gigabinary: (2 10 ) 3 giga: (10 3 ) 3 2 40 tebi Ti terabinary: (2 10 ) 4 tera: (10 3 ) 4 2 50 pebi Pi petabinary: (2 10 ) 5 peta: (10 3 ) 5 2 60 exbi Ei exabinary: (2 10 ) 6 exa: (10 3 ) 6 2 70 zebi Zi exabinary: (2 10 ) 7 exa: (10 3 ) 7 2 80 vobi Yi exabinary: (2 10 ) 8 exa: (10 3 ) 8
Exemplos e comparação com SI 1 kibibit 1 Kibit = 2 10 bit = 1024 bit 1 kilobit 1 kbit = 10 3 bit = 1000 bit 1 mebibyte 1 MiB = 2 20 B = 1 048 576 B 1 megabyte 1 MB = 10 6 B = 1 000 000 B 1 gibibyte 1 GiB = 2 30 B = 1 073 741 824 B 1 gigabyte 1 GB = 10 9 B = 1 000 000 000 B
Ironia sobre o Kibi/Kb
Porquê utilizar binário? Representação do número 4096 Notação binária, 1000000000000-13 algarismos Notação decimal, 4096 4 algarismos Qual é a vantagem de utilizar binário? Simplicidade: Mais facilmente implementável em Hw: cartões perfurados (furo=1; sem furo=0, meios magnéticos: magnetizado Norte=1, magnetizado Sul=0, transístores: on=1, off=0. Eficiência: Só tem dois valores possíveis, 0 e 1, contra os 10 decimais Associado aos valores lógicos: falso (0), verdadeiro (1)
Utilizações do binário A combinação de bits pode ser utilizada para: Representação de caracteres: 1 byte = 1 caracter ISO-8859-1 (extensão do ASCII): 1 byte = 1 caracter 00101110 representa. 01000001 representa A UTF-8: utiliza entre 1 a 4 bytes Representação de números Representação de cores
ASCII Versão inicial utilizava 7 bits, capaz de endereçar 128 caracteres Não suporta caracteres acentuados Na versão estendida, para representar um caracter precisamos de um byte que equivale ao conjunto de 8 bit, endereçando 256 caracteres Padrão ISO-8859-1 (latin-1), suporta caracteres acentuados: ç, à, é,
Tabela ASCII ISO-8859-1
Unicode Padrão que permite aos computadores representar e manipular, de forma consistente, texto de qualquer sistema de escrita existente ASCII estendido é insuficiente para utilização internacional Objetivo: substituir os esquemas de codificação de caracteres existentes pelo Unicode e pelos esquemas Unicode Transformation Formats UTF-7, UTF-8, UTF-16, UTF-32. Implementado em várias tecnologias recentes, nomeadamente XML, Java e SO modernos.
8-bit Unicode Transformation Format Codificação Unicode de comprimento variável. Representa qualquer caracter universal padrão do Unicode, sendo também compatível com o ASCII primeiros 256 caracteres = ao ASCII estendido. Adoção gradual como tipo de codificação padrão para email e páginas web, entre outros. Em janeiro de 2015 adotado por 82.4% de páginas web
8-bit Unicode Transformation Format Utiliza de um a quatro bytes por carácter: 1 byte para codificar os caracteres ASCII. 2 bytes para caracteres Latinos com diacríticos e dos alfabetos Grego/Cirílico/Armênio/Hebraico/Sírio/Thaana. 3 bytes para o resto do Plano Multilingual Básico. Existem outros caracteres que necessitam de 4 bytes.
Números decimais e binários Numeração decimal cada dígito tem um peso que é 10x superior ao do dígito à sua direita: 2015 = (((2x10 + 0)x10 + 1)x10) + 5 ou 2*10 3 + 0*10 2 + 1*10 1 + 5*10 0 Numeração binária cada dígito tem um peso que é 2x superior ao do dígito à sua direita: 1011 2 = (((1x2 + 0)x2 + 1)x2 + 1 ou 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 8 + 0 + 2 + 1 = 11 10
Numeros binários Primeiros 16 números binários e os equivalentes decimais 0000 = 0 1000 = 8 0001 = 1 1001 = 9 0010 = 2 1010 = 10 0011 = 3 1011 = 11 0100 = 4 1100 = 12 0101 = 5 1101 = 13 0110 = 6 1110 = 14 0111 = 7 1111 = 15
Numeros binários Nº de telefone da ESTG 1110100101111010100101001100 O que é que há de errado com este número? Difícil de tomar nota num guardanapo Sujeito a erros de transcrição Certamente não irão receber muitos telefonemas Apesar de os computadores processarem binário, este não é o melhor sistema para os humanos É mais fácil de decorar 244820300
Binário e hexadecimal Programadores preferem métodos de representação mais compactos: Historicamente, octal (base 8) e hexadecimal (base 16). Octal já não é muito utilizado. Hexadecimal é o adotado Necessita de 6 novos digitos. Conversão entre binário e décimal é lenta e deve ser evitada se não for necessária. Conversão de hexadecimal para binário é direta.
Relação binário/hexadecimal Cada digito hexadecimal permite endereçar 4 bits Os dígitos hexa são os 10 decimais mais as 6 primeiras letras do alfabeto, A = 10 F = 15 0000 = 0 0100 = 4 1000 = 8 1100 = C 0001 = 1 0101 = 5 1001 = 9 1101 = D 0010 = 2 0110 = 6 1010 = A 1110 = E 0011 = 3 0111 = 7 1011 = B 1111 = F 1100 1010 1101 1010 2 = C A D A 16
Codificação da cor Muitos programadores web utilizam valores RGB para definir cores. HTML5 e CSS3 define 140 nomes, 17 HTML/ 123 CSS Valores RGB baseados no Red, Green, Blue. Para definir cores numericamente, é atribuído a cada cor primária um valor numérico que carateriza a sua intensidade; O somatório destes parâmetros definem a cor. Valor numérico pode ser representado em decimal, ou hexadecimal mas é interpretado pelo PC em binário
Expressar cor em hexadecimal Intensidade varia entre o e 255. Exemplos de cores, expressa em hexadecimal: 0x000000 Preto (R, G e B = 0) 0xFFFFFF Branco (R,G e B = 255) 0xFF0000 Vermelho (R = 255, G e B = 0) 0x00FF00 Verde 0x0000FF Azul 0xFFFF00 Amarelo (R e G = 255) 0xAEEEEE Turquesa 0x808080 Cinzento (R,G e B = 127)
Exemplo de aplicação Descobrir a cor do logotipo do IPL 1º passo: Analisar o código HTML da página do IPLeiria Background-color: #B30033 2ª passo: Decompor o número hexadecimal nas 3 cores RGB R=0xB3; G=0x00; B=0x33 3º passo: converter dehexadecimal para decimal 0xB3 = 16*11+1*3=179 0x00 = 0 0x33 = 16*3+1*3 = 51 4º passo: introduzir os números decimais numa ferramenta de criação de cores (ex: paint)
Hexadecimal para Decimal Hexadecimal Decimal
Hexadecimal para Decimal Técnica Multiplicar cada digito hexadecimal por 16 n, onde n é o peso do digíto O peso corresponde à posição de cada digito, começando em 0 a partir da direita Adicionar os resultados
Exemplo A B C 16 2 Pesos 16 1 16 2 x A B 16 2 x 10 16 0 16 0 x 16 1 x C 16 1 x 11 16 0 x 12 2560 + 176 + 12 = 2748 ABC 16 => 2748 10
Hexadecimal para Binário Hexadecimal Binário
Hexadecimal para Binário Técnica Converter cada digito hexadecimal para a representação binária de 4-bits equivalente
Exemplo 10AF 16 =? 2 1 0 A F 0001 0000 1010 1111 10AF 16 => 0001000010101111 2
Binário para Hexadecimal Binário Hexadecimal
Binário para Hexadecimal Técnica Agrupar os bits 4 a 4, da direita para a esquerda Converter cada grupo de 4 bits pelo dígito hexadecimal correspondente
Exemplo 1010111011 2 =? 16 0010 1011 1011 2 B B 1010111011 2 => 2BB 16
Binário para Decimal Binário Decimal
Binário para Decimal Técnica Multiplicar cada bit por 2 n, onde n é o peso do bit O peso corresponde à posição de cada bit, começando em 0 a partir da direita Adicionar os resultados
Exemplo 1 0 1 0 2 3 Pesos 2 2 2 1 2 0 2 3 x 1 0 2 2 x 1 2 0 x 2 1 x 0 8 + 0 + 2 + 0 = 10 1010 2 => 10 10
Decimal para Hexadecimal Decimal Hexadecimal
Decimal para Hexadecimal Técnica Dividir o n.º decimal sucessivas vezes por 16 O resto de cada divisão é um dígito hexadecimal O último resto é o bit mais significativo ( + à esquerda)
Exemplo 1234 10 =? 16 1234 16 114 77 16 02 13 4 04 16 0 1234 10 => 4 D 2 16
Decimal para Binário Decimal Binário
Decimal para Binário Técnica Dividir o n.º decimal sucessivas vezes por 2 O resto de cada divisão é um dígito binário O último resto é o bit mais significativo ( + à esquerda)
Decimal para binário 21 2 01 10 1 0 2 5 2 1 2 2 0 1 1 2 0 21 10 => 1 0 1 0 1 2
Conversor binário/decimal/hexa http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html