Um pouco sobre bits e bytes
Dica publicada em Linux / Miscelânea
Um pouco sobre bits e bytes
Vamos lá: Um "bit" é a menor porção de informação processável. Até aí morreu Nero.
Um "byte", por sua vez, é um conjunto de 8 bits. Apenas oito.
Alguma confusão a esse respeito parece que começou a crescer quando a IBM lançou os primeiros PCs, que tinham a capacidade de ler dois blocos de 8 bits de cada vez.
É fácil deduzir: 8 + 8 = 16!
Assim também é fácil chegar-se à errônea conclusão de que os PCs trabalhavam com um "byte de 16 bits". E modernamente, quando são acessados 64 bits por vez, há quem ainda pense que o tamanho do byte tenha crescido.
Não. Apenas podem ser acessados mais e mais bits em um só "pacote", em um só "conjunto". 16, 32, 64, 128, e assim por diante.
Isso resulta em economia de espaço físico e maior velocidade de processamento.
Mas o bom e velho byte continua com seus 8 bits, até que um dia (quem sabe?) seja mudada radicalmente a arquitetura do PC, bem como a arquitetura da memória.
Um byte pode conter comandos, dados ou um conjunto de flags (sinaleiras).
Para entendermos melhor o funcionamento de um byte (no tocante às flags), consideremos as seguintes posições, da direita para a esquerda:
A explicação acima é apenas superficial, só para "dar um gostinho". Não vamos entrar em detalhes, pois isso daria um livro. Isso aí é coisa para os assembleiros de coração...
O importante é que o sistema vai lendo e interpretando byte a byte.
Se na primeira posição de um byte (bit 0) houver algo diferente de uma flag, então trata-se de comandos ou dados, e a leitura prosseguirá.
Os comandos são facilmente reconhecidos como tal, pois apenas em poucas ocasiões poderiam ser confundidos visualmente com dados.
E apenas NÓS humanos fazemos esse tipo de confusão, já que o PC não se confunde jamais.
Sendo necessário, cada byte é completado até a oitava posição seja com espaços (ascii "20", em caso de dados) ou com o sinal NOP ("no operation", código ascii = "00" em caso de comandos).
Assim, o "foco da atenção" do PC estará sempre na primeira posição da cada byte. É esse bit 0 que irá determinar as ações do sistema operacional.
Para o PC é ESSE o pulo do gato.
Como o conjunto de bits não aumentou, e vai somente até o bit 7, os sistemas operacionais para o IBM-PC continuam lendo de oito em oito bits, mesmo que em grandes conjuntos. E vão vivendo felizes para sempre.
Mas pelamordedeus: O Bill Gates não inventou o tal de "byte de 32 bits" !!!...
Não paguem mico!
Um "byte", por sua vez, é um conjunto de 8 bits. Apenas oito.
Alguma confusão a esse respeito parece que começou a crescer quando a IBM lançou os primeiros PCs, que tinham a capacidade de ler dois blocos de 8 bits de cada vez.
É fácil deduzir: 8 + 8 = 16!
Assim também é fácil chegar-se à errônea conclusão de que os PCs trabalhavam com um "byte de 16 bits". E modernamente, quando são acessados 64 bits por vez, há quem ainda pense que o tamanho do byte tenha crescido.
Não. Apenas podem ser acessados mais e mais bits em um só "pacote", em um só "conjunto". 16, 32, 64, 128, e assim por diante.
Isso resulta em economia de espaço físico e maior velocidade de processamento.
Mas o bom e velho byte continua com seus 8 bits, até que um dia (quem sabe?) seja mudada radicalmente a arquitetura do PC, bem como a arquitetura da memória.
Um byte pode conter comandos, dados ou um conjunto de flags (sinaleiras).
Para entendermos melhor o funcionamento de um byte (no tocante às flags), consideremos as seguintes posições, da direita para a esquerda:
- Bit 0 (flag C) : "vai um" ou "vem um" nas operações aritméticas;
- Bit 1 (flag N) : utilizada em operações binárias;
- Bit 2 (flag P/V) : Paridade e overflow;
- Bit 3 (utilização não definida);
- Bit 4 (flag H) : também utilizada em operações binárias;
- Bit 5 (utilização não definida);
- Bit 6 (flag Z) : Flag correspondente ao valor zero;
- Bit 7 (flag S) : Sinal lógico "1" ou "0" (é uma cópia do bit anterior).
A explicação acima é apenas superficial, só para "dar um gostinho". Não vamos entrar em detalhes, pois isso daria um livro. Isso aí é coisa para os assembleiros de coração...
O importante é que o sistema vai lendo e interpretando byte a byte.
Se na primeira posição de um byte (bit 0) houver algo diferente de uma flag, então trata-se de comandos ou dados, e a leitura prosseguirá.
Os comandos são facilmente reconhecidos como tal, pois apenas em poucas ocasiões poderiam ser confundidos visualmente com dados.
E apenas NÓS humanos fazemos esse tipo de confusão, já que o PC não se confunde jamais.
Sendo necessário, cada byte é completado até a oitava posição seja com espaços (ascii "20", em caso de dados) ou com o sinal NOP ("no operation", código ascii = "00" em caso de comandos).
Assim, o "foco da atenção" do PC estará sempre na primeira posição da cada byte. É esse bit 0 que irá determinar as ações do sistema operacional.
Para o PC é ESSE o pulo do gato.
Como o conjunto de bits não aumentou, e vai somente até o bit 7, os sistemas operacionais para o IBM-PC continuam lendo de oito em oito bits, mesmo que em grandes conjuntos. E vão vivendo felizes para sempre.
Mas pelamordedeus: O Bill Gates não inventou o tal de "byte de 32 bits" !!!...
Não paguem mico!