Pular para o conteúdo principal

Números Binários

Na natureza, todo tipo de informação pode assumir qualquer valor compreendido em um intervalo de — a + . Você consegue distinguir, por exemplo, uma cor vermelha que esteja um pouco mais clara de outro tom de vermelho. Consegue distinguir um som mais alto do que outro. Consegue perceber quanto um ambiente está mais claro do que outro. Todo esse tipo de informação é conhecido como informação analógica. A construção de circuitos eletrônicos teoricamente deveria seguir os mesmos moldes da natureza a fim de se tornar o mais real possível. No entanto, na hora da construção de circuitos eletrônicos para o processamento de informações, a utilização de informações analógicas tornou-se um grande problema. Para você ter uma idéia, imagine um determinado circuito eletrônico comunicando-se com outro a uma certa distância. Vamos dizer que os dois dispositivos permitam informações analógicas. Se um dispositivo enviar um determinado valor e, durante o percurso, houver um problema qualquer (em especial, interferências eletromagnéticas), tal informação chegará alterada. O grande problema, no entanto, estará no fato de que o dispositivo receptor não terá meios de verificar se a informação era verdadeira ou não. Como aceita qualquer valor, se, em vez de “70”, chegar o valor “71”, o dispositivo terá de aceitá-lo como verdadeiro. Dessa forma, nenhum dispositivo eletrônico conseguiria funcionar corretamente. Vamos usar o exemplo de uma música gravada em uma fita cassete comum. Após, digamos, cinco anos, a mesma música ficou com um som mais “abafado”, além de “chiados” e “estalos”; enfim, ruídos. Por quê? Como o gravador registrou a informação da música na fita cassete de maneira analógica, todo e qualquer ruído do meio irá interferir no resultado final, pois, na hora de reproduzir a música, o gravador simplesmente achou que os ruídos fizessem parte dela! Isso porque, como a informação foi gravada analogicamente, poderia assumir qualquer valor, inclusive o valor “ruído”. Dispositivos eletrônicos para o processamento de informações trabalham com um outro sistema numérico: o sistema binário. No sistema binário, ao contrário do sistema decimal, só há dois algarismos: “0” e “1”. No entanto, há uma grande vantagem: qualquer valor diferente desses será completamente desprezado pelo circuito eletrônico, gerando confiabilidade e funcionalidade. Como o sistema binário representa o estado de um dedo recolhido na mão (0) ou esticado (1), por vezes o chamamos de sistema digital. Cada algarismo binário (um “0” ou um “1”) é chamado de bit (contração de binary digit). Vamos usar agora o exemplo da mesma música gravada em uma fita DAT (Digital Áudio Tape, que é uma fita cassete que grava informações de maneira digital e não analógica como as fitas cassetes convencionais) no mesmo dia em que a outra e vamos supor que aquela tivesse sofrido o mesmo tipo de influência do meio. Logo estaria, como a outra analógica, cheia de interferências em sua camada magnética, representada para nós sob forma de ruído. No entanto, há uma diferença: por ter sido gravada sob a forma de informações digitais, a música está codificada sob a forma de vários “0”s e “1”s. Logo, qualquer outro valor diferente de “0” ou “1” será simplesmente ignorado pelo gravador reprodutor! Principalmente o valor “ruído”! Por isso dizemos que sistemas digitais são mais confiáveis e mais puros. Outra vantagem do sistema digital sobre o analógico é que as informações são gravadas em forma de números. Por exemplo, em uma fita DAT ou em um CD, o que há gravado não são músicas ou sons, mas sim números. Com isso, há como usarmos mecanismos de correção de erros a fim de verificar a integridade dos dados, como explicaremos melhor no tópico Transmissão de Dados, mais adiante. Matematicamente, escrevemos um número em função da potência de sua base, mesmo que isso pareça transparente para nós, que estamos acostumados a trabalhar, no dia a dia, com a base decimal. Para um número decimal de quatro algarismos, por exemplo, cada algarismo tem os seguintes “pesos”:
10³
10²
10¹
10º
Por exemplo:
10: 1x101 + 0x100
100: 1x102 + 0x101 + 0x100
1.000: 1x103 + 0X102 + 0x101 + 0x100
123: 1x102 + 2x101 + 3x100
.345: 4x103 + 3x 102 + 4x101 + 5x100
Compreendendo esse “desmembramento” dos números em base decimal, é facílimo entender os números binários.Cada casa binária terá um “peso” individual, sempre relativo à potência de 2 — já que estamos trabalhando com a base 2. Para um número binário de oito algarismos (8 bits), cada algarismo tem os seguintes pesos:
27
26
25
24
23
22
21
20
Por exemplo:
0
0x20
1
1x20
110
1x22 + 1x21 + 0x20 (equivalendo a 6 em decimal)
10111
1x24 + 0x23 + 1x22 + 1x21 + 1x20 (equivalendo a 23 em decimal)
Conjuntos de algarismos binários (bits) formam palavras binárias que representarão números máximos bastante definidos — e relativamente pequenos. Obviamente, cada casa binária só poderá ser preenchida com dois algarismos (0 ou 1), enquanto cada casa decimal pode ser preenchida com dez algarismos (de 0 a 9). Vamos ao exemplo de um número hipotético de quatro casas decimais. Esse número poderá ter qualquer valor de 0000 a 9999, logo poderá assumir 10.000 valores diferentes — ou seja, poderá ter 10.000 variações (ou 104 variações) — isto é, o valor da base numérica (10) elevado ao número de casas numéricas (4). Comparativamente, um número hipotético também de quatro casas — porém, agora, binárias — poderá ter qualquer valor entre 0000 e 1111, ou seja, 24 variações, ou 16 valores diferentes. É fácil, portanto, observar que estaremos muito mais limitados utilizando a base binária do que a decimal, a que estamos tão acostumados.Palavras binárias recebem nomes especiais conforme a quantidade de bits utilizada pelas mesmas, representando uma variação de números bastante definida:
Nibble
4 bits (24 = 16 variações)
Byte:
8 bits (28 = 256 variações)
Word:
16 bits (216 = 65.536 variações)
Double Word
32 bits (232 = 4.294.967.296 variações)
Quad Word
64 bits (264 = 18.446.744.073.709.551.616 variações)
Como você deve ter observado, cada palavra destas está presa a um número predeterminado de bits, logo o número máximo que podemos expressar utilizando cada uma delas é limitado: com um nibble só podemos representar 16 números (24); com um byte, somente 256 (28); com uma word, somente 65.536 (216) ; e assim sucessivamente. Dessa forma, também temos números “inteiros” em binário, só que, como estamos trabalhando em base 2, e não emm base 10, esses números, parecem ser “quebrados” quando representados em decimal. Por exemplo, 8.192 é um número inteiro em binário, pois representa 213. Da mesma forma, 131.072 é considerado um número inteiro, pois representa 217. O sufixo K (kilo-), que, em decimal, representa 1.000 vezes (como em Km e Kg), em
binário representa 210 vezes (1.024). Logo, 1 Kbyte representa 1.024 bytes, 2 Kbytes representam 2.048 bytes e assim sucessivamente. Do mesmo modo, o sufixo M (mega-) representa 220 vezes (1.048.576) e o sufixo G (giga-) representa 230 vezes (1.073.741.824), diferenciando-se completamente da representação decimal.
Sufixo
Quantidade
Kilo (K) 210
1.024
Mega (M) 220
1.048.576
Giga (G) 230
1.073.741.824
Tera (T) 240
1.099.511.627.776
Peta (P) 250
1.125.899.906.843.624
Exa (E) 260
1.152.921.504.607.870.976
Zeta (Z) 270
1.180.591.620.718.458.879.424
Yotta (Y) 280
1.208.925.819.615.701.892.530.176
Atenção: Devemos ter muito cuidado para não cometermos falsos arredondamentos. 65.536, por exemplo, representa, em binário, 64 K (e não 65 K, como parece), assim como 157.286.400 representa 150 M (e não 157 M). Tome muito cuidado!
Base Hexadecimal
Desde o surgimento dos primeiros microprocessadores, as palavras binárias de dados manipuladas eram múltiplas do nibble. Sendo assim, uma outra base numérica passou a ser amplamente utilizada — a base 16 (hexadecimal) —, uma vez que o maior valor numérico que poderia ser atribuído a um nibble era 16. Dessa forma, temos:
Valor decimal
Valor Binário
Valor Hexadecimal
0
000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Como você pôde observar, cada algarismo hexadecimal estará sempre representando 4 bits. Assim, F12AC é um número de 20 bits, como 129D3E12 é um número de 32 bits. A adoção da base hexadecimal para representação de números que, na verdade, estavam sendo manipulados em binários, foi quase imediata, uma vez que é muito mais fácil para o programador trabalhar com números em hexadecimal do que em binário. Imagine escrever uma soma de dois números de 32 bits! Haja tanto 0 e tanto 1! Ora, é muito mais fácil e cômodo escrever 123A do que 0001001000111010! Assim, a possibilidade de erros por parte do operador diminui bastante.Em hexadecimal, cada número de 32 bits tem somente oito algarismos, tornando o trabalho de representação muito mais fácil e, sem dúvida alguma, seguro. Trabalhando com números binários, pessoas facilmente acabam por trocar um “0” por um “1” em algum momento.Começamos a ter um grande problema. Se você visse “10” estampado em algum lugar, que valor você atribuiria a ele? Dependeria da base em que o mesmo está representado. No nosso caso, teríamos de saber se esse número está em decimal, binário ou hexadecimal, pois os valores absolutos em decimal seriam 10, 2 e 16, respectivamente. Dessa forma, precisaremos ter algum indicador de base numérica. Em informática, o mais comum é usar o símbolo “$” (dólar) ou a letra “b” para números em binário, por exemplo, $1011 ou 101”b, e a letra “h” para números em hexadecimal, por exemplo, 12h. Assim, 10 vale $1010 ou Ah. O byte é a palavra binária mais utilizada, por diversos motivos. O principal deles é o fato de que os microprocessadores se tornaram populares e passaram a ser usados em larga escala quando surgiram os modelos de oito bits, nos anos 70, sendo que esses modelos de processadores foram largamente utilizados nas mais diversas aplicações por mais de 10 anos. Devemos tomar alguns pequenos cuidados na hora de representar a abreviação de byte, a fim de que não haja confusão com a abreviação de bit. Enquanto abreviamos bit com “b” (b minúsculo), abreviamos byte com “B” (b maiúsculo). Assim, 1 KB é a representação de um kilobyte (1.024 bytes = 8.192 bits), enquanto 1 Kb é a representação de um kilobit (1.024 bits).
Fonte: Hardware Curso Completo 4ª Edição

Comentários

Hj disse…
Cara ficou bem claro este teu tópico, eu estava procurando algo sobre "transmissão de dados" concatenado com "mudanças de base numérica", o teu blog veio quase em primeiro resultado, além das propagandas de cados de dados...
Mas estou postando mesmo só para elogiar este post, já marquei teu blog nos favoritos e assim que eu tiver uns minutos livres venho dar um olhada melhor, achei bem interessante...
Até mais e tenha um bom final de semana!!!!!
Maicon*
Anônimo disse…
o seu blog é miuto show.
suzana disse…
Olá Bom Dia? Meu nome é Suzana eu estou fazendo curos de hardwere na microlins, então estou um pouco confusa para mim entender, será que vocês poderiam me ajudar em algumas partes importantes de hardwer que eu deveria saber.
Obrigado(a)Mandem um e-mail pra mim
suzany_dnds@hotmail.com
Beijos e tenha um bom dia!!
Josenilson disse…
Cara....
Valeu.....
Me ajudou e muito..
Anônimo disse…
muito bom!
vcs mandaram muito bem.
valeu!
Anônimo disse…
muito bom esse seu post, continue assim, que Deus lhe abençoe sempre.

Postagens mais visitadas deste blog

Melhorando o desempenho do sistema operacional

Boa galera, passados os anos, procurando sempre melhorar o desempenho do XP descobri macetes que apresentaram um bom resultado, pois testei e aprovei em maquinas de clientes e na minha própria máquina. Os resultados me foram bastante satisfatório e gostaria de compartilhar com todos. Bem vamos ao que interessa, pois temos muita pressa em iniciar nosso sistema operacional. PARA USUÁRIO NÃO AVANÇADO, RECOMENDO MUITO CUIDADO AO FAZER ESSES AJUSTES. OBS: Crie um ponto de restauração antes de fazer as mudanças no registro. Ativando o "Large System Cache" Iniciar>Executar/ digite: regedit e clique em ok. Navegue até a chave: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement. No lado direito Dê um duplo clique em LargeSystemCache e altere o valor da variável para 1 . Feche o regedit e reinicie. Configurando a CPU para uso de programas e serviços em background Iniciar>Executar/ digite: regedit e clique em ok. Navegue até a chave :

O que é c++

    Neste post vamos falar sobre uma linguagem de programação que é base para outras linguagens ex: Java e C#, pois a sintaxe é muito parecida. Vou contar como surgiu esta linguagem. Seu primeiro nome foi "C com classes". A razão de a linguagem C se chamar C é porque ela foi sucessora de uma linguagem que se chamava B, que foi desenvolvida por Ken Thompson em 1970 e que rodava em um DEC PDP-7, um computador muito menos potente do que um PC moderno.      Em 1972 Dennis Ritchie e Ken Thompson criaram a Linguagem C para aumentar o poder do B. Depois de certa ocasião, os programas em C ficavam cada vez maiores e algumas pessoas começaram a achar que as construções de programação padrão simplesmente não estavam à altura da tarefa. Uma solução seria tornar os programas mais modulares, através do uso de funções. No entanto algumas funções acabavam precisando compartilhar dados, outras precisavam coordenar seu trabalho com outras e, de novo, era possível acabar precisando ter de g