Programação Lógica Objetivo: Conhecer os sistemas de numeração e realizar as quatro operações na base binária. • • • • Introdução Bases Numéricas Conversão entre bases Operações Aritméticas na base binária • Notação de números Binários Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Nos primórdios da humanidade, os seres humanos iniciaram a quantificação utilizando o dia e a noite, e, posteriormente o dedos das mãos. Desta maneira iniciou-se o sistema decimal (utilizando-se 10) para realização de contagem e operações aritméticas. Os primeiros computadores (ainda mecânicos ) trabalhavam nesta base. Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Como a base decimal é extremamente complexa para representar um fenômeno físico como ligado ou desligado, aceso ou apagado, magnetizado ou não magnetizado, com o advento do computador eletrônico (meados do século XX) optou-se por utilizar o sistema binário. Apesar de simples para os sistemas computacionais, para as pessoas, a leitura de dados binários é difícil. Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Neste sentido, visando facilitar a leitura dos dados, a apresentação dos dados básicos computacionais utilizam o sistema hexadecimal, facilitando a leitura e memorização. Atualmente, a caracterização de um computador como clock, tamanho de memória, taxa de transferência de dados, etc. baseia-se na utilização do sistema binário a saber: Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Bit: Binary Digit •Menor unidade computadores de informação dos •Assume dois valores para dois estados diferentes: 1 = Ligado; 0 = Desligado • O bit é a menor unidade física da memória •De acordo com a tecnologia os bits são armazenados e movimentados no computador e grupos de 8, 16, 32, 64 •Cada grupo recebe o nome de palavra Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Palavra e Byte •Um byte corresponde a um conjunto de oito bits •Um byte é um espaço de memória necessário para armazenar um caracter (letra, algarismo ou símbolo) • Cada palavra é formada por um grupo de 2, 4, 6 ou até 8 bytes. Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Utilidade do Byte •Representa, na memória do comtutador, os símbolos da nossa linguagem •Com 1 byte é possível representar 256=28 símbolos diferentes • Exemplo: 010000012=4116=A 011000012=6116=a Os subscritos representam respectivamente as bases binária (2) e hexadecimal (16). Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução O tamanho da memória de um computador também é medido em byte, assim como o seu endereço. Quando se declara uma variável ou uma constante em linguagem de alto nível, o compilador reserva a posição inicial e as sucessivas, conforme o tamanho da variável ou constante. Portanto, a variável ou constante declarada aponta para uma posição (endereço) de memória no computador. Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Introdução Múltiplo do Byte Unidade quilobyte megabyte gigabyte terabyte pentabyte Programação Lógica Múltiplo byte kb Mb Gb Tb Pb Representação bytes 1024=210 1048576=220 1073741824=230 240 250 A.L.Lapolli – www.lapolli.pro.br • Bases Numéricas Programação Lógica A base numérica é o representante simbólico de quantidade. As bases que iremos estudar são: Decimal, Binária, Octal e Hexadecimal Decimal: É a mais conhecida, constituída de 10 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Os números com mais de um algarismos são quantificados pela posição: 3 5 410 Unidade => 100 => 4 . 100 = 4 Dezena => 101 => 5 . 101 = 50 Centena => 102 => 3 . 102 = 300 354 Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Bases Numéricas Binária: Constituída de apenas 2 símbolos: 0, 1 1 0 1 12 20 21 22 23 Octal: Constituída de 8 símbolos: 0, 1, 2, 3, 4, 5, 6, 7 2 5 18 80 81 82 Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Bases Numéricas Hexadecimal: Constituída de 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 2 A 116 160 161 162 Exercícios: Exibir quantidade nas bases diferentes Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases Bases Binária, Octal e Hexadecimal para Decimal: O processo consiste em multiplicar os algarismos à base elevada ao expoente correspondente à posição relativas do algarismo. O resutaldo de cada posição devem ser somados. Exemplo: Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases Binária Decimal 1 0 1 12 1 x 20= 1 1 x 21= 2 0 x 22= 0 1 x 23= 8 Octal Decimal 2 5 18 = 1110 1 x 80= 1 5 x 81= 40 2 x 82= 128 = 16910 Hexadecimal Decimal 2 A 116 1 x 160 = 1 A x 161= 10 x 161=160 2 x 162= =512 = 67310 A16=1010 Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases Da base Decimal para as bases Binária, Octal e Hexadecimal: Consiste na operação inversa da conversão de qualquer base para decimal. Divide-se sucessivamente o número em decimal pelo valor da base que se deseja converter até que o quociente seja menor do que o valor da base. O resultado é constituído dos algarismos contidos no último quociente e dos restos das primeiras divisão sendo que, este último é o algarismo mais significativo e o primeiro resto o menos significativo. Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases Decimal Binária 11 2 1 5 1 Last Significant Bit 2 2 0 2 1 MSB Most Significant Bit 1110=10112 Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases Decimal Octal 169 8 1 21 5 8 2 Decimal Hexadecimal 673 16 1 42 10 16 2 A 16910=2518 Programação Lógica 67310=2A116 A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases As conversões entre Binário, Octal e Hexadecimal utiliza a seguinte tabela. Binário e Octal. Binário Octal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 Programação Lógica Um número na base octal é composto em sequência de 3 dígitos binários (de três em três bits) 258=0101012 2 010 5 | 101 Observe a correspondência na tabela. A conversão é direta nas duas mãos!! A.L.Lapolli – www.lapolli.pro.br • Conversão entre bases Binário Hexadecimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F Programação Lógica Programação Lógica Binário e Hexadecimal Um número na base Hexa é composto em sequência de 4 dígitos binários (de quatro em quatro bits) 67316=011001110011 6 7 3 Para escrever este número em octal 011 001 110 011 3 1 6 3 67316=31638 Desnecessário fazer conta!! A.L.Lapolli – www.lapolli.pro.br Programação Lógica • Conversão entre bases Nestas condições, a realização das operações de conversão binária, octal e hexadecimal são relativamente simples. Para passagem de qualquer base para a decimal e vice versa, basta que se obtenha o número na base binária e desta se passe para a decimal e vice versa, evitando-se operações mais complexas. Programação Lógica A.L.Lapolli – www.lapolli.pro.br • Operações Aritméticas na base binária Programação Lógica São relativamente simples. Basta respeitar-se as condições operacionais. Soma: 0+ 0 0 0+ 1 0 1+ 0 1 1+ 1 10 10 1 11 0 Carry Transporte: Vai 1 Subtração: 00 0 01 1 Minuendo Subtraendo Vai 1 no subtraendo para o algarismo mais significativo. Alternativamente, empresta-se 1 do algarismo mais significativo do minuendo para o menos significativo e assim sucessivamente conforma a necessidade. Programação Lógica A.L.Lapolli – www.lapolli.pro.br • Operações Aritméticas na base binária Exemplo de soma: Programação Lógica 1 11+ 1 10 100 110+ 111 1101 1 Alternativamente: Subtração: 111100 011 1000+ 1 111 0001 10001 + 101 01 1000+ 1 001 001 1000+ 1 001 0001 Programação Lógica A.L.Lapolli – www.lapolli.pro.br • Operações Aritméticas na base binária Programação Lógica Outra forma de se subtrair: Basta emprestar 1 do algarismo mais significativo do minuendo. 1000111 Programação Lógica 010 00111 0 1 10 0111 0 111 0001 1 1 10 A.L.Lapolli – www.lapolli.pro.br • Operações Aritméticas na base binária Programação Lógica Multiplicação: 0x 0 0 Exemplo: Programação Lógica 0x 1 0 1x 0 0 1x 1 1 11010 x 101 11010 110100 10000010 A.L.Lapolli – www.lapolli.pro.br • Notação de números Binários Programação Lógica Não há símbolos em sistemas eletrônicos, apenas tabelas de códigos que representam os símbolos. Os números binários necessitam do bit de representação de sinal. Convencionalmente, dependendo do sistema 0 positivo (+) 1negativo (-) 3510=+100011=0100011 -7310=-10010012=11001001 Programação Lógica A.L.Lapolli – www.lapolli.pro.br • Notação de números Binários Programação Lógica Outra forma é o complementos de 2. Representação em 4 bits: 110=0001 -110=1111 710=0111 -710=1001 Se fosse um sistema de representação não sinalizada: 11112=1510 e 10012=910 Portanto, para se trabalhar em complemento de 2 deve-se manter o número de dígitos binário do sistema de numeração, desprezando-se os excessos mais significativos. Programação Lógica A.L.Lapolli – www.lapolli.pro.br • Notação de números Binários Programação Lógica Determinação do complemento de 2 de determinado número: 100110011 Complemento de 1: 100110011 Faz-se a inversão do bits: 011001100 Complemento de 2: 1+ Soma-se 1 ao resultado 011001101 do complemento de 1. -20510 20510 Considerando-se a convenção de complemento de dois : Programação Lógica A.L.Lapolli – www.lapolli.pro.br • Notação de números Binários Programação Lógica Nestas condições, pode-se subtrair dois números em complemento de 2: 1000111 Complementando 2 111=0111=1000+1=1001 1000+ 1001 x 10001 Desprezado Programação Lógica A.L.Lapolli – www.lapolli.pro.br Programação Lógica Programação Lógica A.L.Lapolli – www.lapolli.pro.br