# O Byte

Agora que já temos um olhar mais abstraído sobre os números, é necessário entender como o computador trabalha com eles. Acontece que é preciso armazenar estes números em algum lugar antes de usá-los em qualquer operação. Para isso foi criado o *byte*, a unidade de medida da computação. Consiste em um **espaço** para armazenar *bits* (8 na arquitetura Intel, também chamado de **octeto**). Então, neste livro, sempre que falarmos em em 1 *byte*, leia-se, "um espaço onde cabem 8 *bits*". Sendo assim, o primeiro número possível num *byte* é 0b00000000, ou simplesmente 0 (já que zero à esquerda não vale nada e zero em decimal representa a mesma quantidade que zero em binário). E o maior número possível é 0b11111111 que é igual a 0xff em hexa ou 255 em decimal.

> Uma maneira rápida de calcular o maior número positivo que pode ser representado num espaço de x *bits* é usando a fórmula 2^x - 1. Por exemplo, para os 8 *bits* que mencionamos, basta elevar 2 à oitava potência (que resulta em 256) e diminuir uma unidade: 2^8 - 1 = 255. E por que diminuir um? Porque que o zero precisa ser representado também. Se podemos representar 256 números diferentes e o zero é um deles, ficamos com a faixa de 0 a 255.

Agora que você já sabe o que é um *byte*, podemos apresentar seus primos *nibble* (metade dele), *word*, *double word* e *quad word*. Veja a tabela:

| Medida        | Tamanho (Intel) | Nomenclatura Intel |
| ------------- | --------------- | ------------------ |
| *nibble*      | 4 bits          |                    |
| *byte*        | 8 bits          | BYTE               |
| *word*        | 16 bits         | WORD               |
| *double word* | 32 bits         | DWORD              |
| *quad word*   | 64 bits         | QWORD              |

Fica claro que o maior valor que cabe, por exemplo, numa variável, depende de seu tamanho (quantidade de espaço para armazenar algum dado). Normalmente um tipo inteiro tem 32 bits, portanto, podemos calcular 2 elevado a 32 menos 1, que dá 4294967295. O inteiro de 32 *bits* ou 4 *bytes* é muito comum na arquitetura Intel.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mentebinaria.gitbook.io/engenharia-reversa/02-numeros/o-byte.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
