o bit e o byte

Download O bit e o byte

Post on 07-Jul-2015

60 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

O bit e o byte

O tipo de dado mais utilizado pelos chips da famlia 80x86 no o bit, e sim o byte. Um byte equivale a um grupo de oito bits. Para facilitar a leitura e a compreenso, costumam-se adotar algumas convenes:

1. completar com zeros os nmeros binrios para que eles se tornem um mltiplos de quatro ou de oito bits.

Exemplo: 543 = 001000011111;

2. cada grupo de quatro bits deve ser separado por espao.

Exemplo: 0010 0001 1111.

Um byte pode representar at 256 valores diferentes, pois so oito bits em potncia de dois:

28 = 256.

Geralmente um byte usado para representar valores compreendidos entre 0 e 255 no sinalizados ou valores entre -127 a 128 sinalizados.

Para os tipos de dados, como os caracteres (letras ou smbolos), que no possuem mais do que 256 elementos, um byte normalmente suficiente.

Embora sejam visualizadas como letras e smbolos, as constantes caracteres so armazenadas internamente pelo computador como um nmero inteiro entre 0 e 255. O caracter A, por exemplo, tem valor 65; o B, 66; o C, 67; e assim por diante. Os valores numricos dos caracteres esto padronizados em uma tabela chamada de American Standard Code for Information Interchange Table ou simplesmente tabela ASCII.

Um grupo de 16 bits denomina-se word, ou palavra. Com 16 bits podemos representar at 65.536 (216) valores diferentes: 0 a 65.535 no sinalizados e -32.767 a 32.767 sinalizados. Um dos principais usos para a palavra so para os valores de inteiros.

Um grupo de 32 bits denomina-se double words. Com 32 bits podemos representar uma infinidade de tipos de dados, como por exemplo valores ponto flutuante de 32 bits. So 4.294.967.296 (232) valores diferentes: 0 a 4.294.967.295 no sinalizados e -2.147.483.647 a 2.147.483.647 sinalizados.

Um pouco de histria

Ocorreu em junho de 1983, a primeira utilizao de C++ fora de uma organizao de pesquisa. Podemos considerar C++ um resultado evolutivo da linguagem de programao BCPL, criada por Martin Richards e que rodava num computador DEC PDP-7, com sistema operacional UNIX. Ken Thompson, em 1970, efetuou algumas melhorias na linguagem BCPL e a chamou de linguagem "B". Em 1972, Dennis M. Ritchie, no Centro de Pesquisas da Beel Laboratories, implementou diversas melhorias na linguagem "B" que,

considerada uma sucessora de "B", foi chamada de "C", rodando pela primeira vez num DEC PDP-11, em sistema operacional UNIX.

O poder da linguagem "C" logo foi demonstrado, em sua primeira aplicao de peso, quando foi usada para reescrever o sistema operacional UNIX, at ento escrito em linguagem assembly.

Com o tempo, a linguagem "C" tornou-se bastante popular e importante. Contribuiriam para o sucesso o fato de essa linguagem possuir tanto caractersticas de baixo nvel quanto de alto nvel; a portabilidade da linguagem, ou seja, poder ser usada em mquinas de diferentes portes e diferentes sistemas operacionais; bem como o fato de, em meados de 1970, o sistema operacional UNIX ser liberado para as Universidades, deixando de ficar restrito aos laboratrios. Por volta de 1980, vrias empresas j ofereciam diversas verses de compiladores "C", compatveis com outros sistemas operacionais, alm do original UNIX.

Bjarne Stroustrup criou C++. Claramente, como pondera Stroustrup, C++ deve muito a "C" que foi mantida como um subconjunto. Tambm foi mantida a nfase de "C" em recursos que so suficientemente de baixo nvel para enfrentar as mais exigentes tarefas de programao de sistemas. Outra fonte de inspirao para C++ foi Simula67, da qual C++ tomou emprestado o conceito de Classes.

Desde 1980, verses anteriores da linguagem, conhecidas como "C com Classes" tm sido utilizadas. O nome C++, criado em 1983 por Rick Mascitti, representa as mudanas evolutivas a partir de "C", onde "++" o operador de incremento em "C".

Bjarne Stroustrup projetou C++ basicamente para poder programar sem ter de usar Assembler, "C" ou outras linguagens de alto nvel. Seu principal objetivo era tornar a escrita de bons programas mais fcil e mais agradvel para o programador individual.

Em maro de 1998, o American National Standards Institute (ANSI) aprovou e publicou um padro para a linguagem C++. A padronizao melhora a portabilidade e a estabilidade dos programas. Usando a biblioteca Standart de C++, podemos, rapidamente, construir aplicaes confiveis, bem como mant-las com menos custo e esforo.

Desde seu desenvolvimento por Dr. Bjarne Stroustrup, C++ foi extensamente usado na construo de grandes e complexas aplicaes como telecomunicaes, finanas, negcios, sistemas embutidos e computao grfica. A padronizao final da biblioteca de C++ torna mais fcil o seu aprendizado, facilitando seu uso por uma grande variedade de plataformas, o que, por outro lado, significa garantia de colocao profissional permanente para os bons programadores da linguagem.

ConceitosPodemos classificar as linguagens de programao em dois grupos: aquelas consideradas de baixo nvel e aquelas consideradas de alto nvel. 1. Linguagens de baixo nvel.

Quando nascemos, medida que crescemos, nossa percepo e o contato com a realidade do mundo, nos anexa s coisas como elas j foram sedimentadas na cultura de um povo. Assim tambm ocorre com o idioma e, de um modo geral, com algumas cincias que assimilamos em sequer darmos conta disso.

Por exemplo, quando uma criana conta para outra que possui trinta ou quarenta figurinhas, no percebe, mas est fazendo uso do sistema numrico decimal (base 10). E o sistema numrico decimal est incrustado em nosso cotidiano. Via de regra, todos os valores que

usamos e todas as contas que fazemos tm esse sistema numrico como base. Por exemplo, quando escrevo 543, voc entende 543 e no tem dvidas, pois sabe o que 543 significa. Raciocinando em sistema numrico decimal, tambm no difcil compreender que:

543 = (5 x 10) + (4 x 10) + (3 x 10) pois 543 = (5 x 100) + (4 x 10) + (3 x 1) pois 543 = 500 + 40 + 3.

Infelizmente, os sistemas computacionais no representam valores usando o sistema numrico decimal. Internamente, os computadores representam valores usando dois nveis de voltagem (normalmente 0v e +5v). Com esses dois nveis de voltagem, ns podemos representar dois valores. Por conveno, adota-se o zero e o um. Ento, para todos os efeitos, os computadores s conhecem uma linguagem que constituda por zeros e uns, ou cdigo de mquina, mais conhecida por linguagem binria. Nesse contexto, se quisermos representar o nmero 543, devemos escrever:

1000011111

Qualquer quantia de dgitos binrios com valor igual a zero pode anteceder um nmero binrio sem alterar-lhe o valor. Por exemplo, podamos representar o nmero 543 assim:

00000000000000000000000000000000001000011111.

Ante o exposto, no fica difcil compreender que a menor unidade de dados num computador um dgito binrio. Um dgito binrio o mesmo que um bit, abreviatura de binary digits.

Complicado? No incio da era dos computadores (aqueles gigantes vlvula), os programas eram escritos basicamente em binrio, mas, felizmente, longe se vo os dias em que se precisava programar diretamente em binrio, embora ainda exista quem trabalhe nesta base.

O sistema numrico binrio tem um modo de funcionamento semelhante ao sistema numrico decimal, porm com duas diferenas bsicas:

1. o sistema numrico binrio contm apenas os dois valores 0 e 1, em vez de 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9; e

2. o sistema numrico binrio usa potncias de 2, em vez de potncias de 10.

Embora um bit seja capaz de assumir apenas dois valores (zero e um), o nmero de elementos que se pode representar com um nico bit infinitamente grande. Por exemplo, pode-se representar quaisquer dois valores diferentes com um nico bit: falso ou verdadeiro, maior ou menor, redondo ou quadrado e assim por diante, numa lista incomensurvel. Todavia, esse tipo de construo no usual.

Um srio problema com o sistema binrio o tamanho de suas representaes. Veja bem, enquanto a verso decimal de 543 contm apenas trs dgitos: 5, 4 e 3, a representao binria do mesmo valor contm dez dgitos: 1000011111. Disso decorre que, ao se trabalhar com valores grandes, os nmeros binrios rapidamente se tornam difceis de ser controlados. Embora seja possvel converter binrios

em decimal e vice-versa, tal tarefa no simples nem trivial. Mas essa a linguagem que a mquina entende.

Alternativamente, tentou-se programar em hexadecimal, que pode representar dezesseis valores entre 0 e 15 decimais. Os nmeros hexadecimais possuem duas caractersticas positivas:

1. sua converso para binrio relativamente simples; e

2. so razoavelmente compactos.

O sistema hexadecimal uma base de numerao que comea a ser contado no "0" e termina em "F":

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

O sistema hexadecimal possui uma relao simples com o sistema binrio, uma vez que para cada grupo de quatro dgitos binrios temos um em hexadecimal.

veja a tabela abaixo: decimal 1 2 3 4 5 binrio 0001 0010 0011 0100 0101 hexadecimal 1 2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 0001 0110 0001 0111 0001 1000 0001 1001 0001 1010 0001 1011 0001 1100 0001 1101 0001 1110 0001 1111 0010 0000

6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20

Existem algumas convenes que devem ser adotadas para se diferenciar os sistemas numricos:

1. pode-se colocar um sufixo "d" num valor decimal;

2. a letra "b" deve ser colocada no final de todo e qualquer valor binrio. Exemplo: 1011 0001b

3. a letra "h" deve ser colocada ao final de todo e qualquer valor hexadecimal. Exemplo 4D5Fh;

No h neces

Recommended

View more >