# API e versionamento ABI

`PY_VERSION_HEX` É o número da versão do Python codificado em um único inteiro.

Por exemplo se o `PY_VERSION_HEX` está configurado para `0x030401a2`, a informações de versão subjacente pode ser encontrada tratando-a como um numero de 32 bit da seguinte maneira:

> Bytes | Bits (big endian order) | Significado
> --- | --- | ---
> `1` | `1-8` | `PY_MAJOR_VERSION` (O `3` em `3.4.1a2`)
> `2` | `9-16` | `PY_MINOR_VERSION` (O `4` em `3.4.1a2`)
> `3` | `17-24` | `PY_MICRO_VERSION` (O `1` em `3.4.1a2`)
> `4` | `25-28` | `PY_RELEASE_LEVEL` (`0xA` para alpha, `0xB` para beta, `0xC` para release candidate e `0xF` para final), que nesse caso é alpha.
> | `29-32` | `PY_RELEASE_SERIAL` (O `2` em `3.4.1a2`, zero para releases finais)

Portanto `3.4.1a2` é em versão hexadecimal `0x030401a2`.

Todas as macros fornecidas estão definidos em Include/patchlevel.h.