Skip to main content

Command Palette

Search for a command to run...

PHP para Iniciantes: Tipos de Dados Primitivos - Inteiros

Published
5 min read
K

My name is Kaique Garcia, but you can call me Kiko. I'm a developer since 2014, a guitar player since 2008, a World Wide Web explorer since 2000 and a living guy since 1992 (haha). My hobby is to have hobbies (I can tell you more than 20 hobbies I got from my childhood). My pleasure is to solve problems, that's the way I came to the development area. Ok, lemme finish it... I like to meet people, so don't worry about speaking to me!

No artigo anterior, falamos um pouco sobre a tipagem booleana (boolean) e sobre sua profunda relação com lógica de programação e binários. Mas afinal, dá pra fazer algumas operações binárias no PHP (e entender alguma coisa)?

Sim, dá sim! E pra isso você precisa ter uma boa compreensão sobre Bases Numéricas. Mas tudo bem se não tiver, eu vou falar um pouquinho sobre as bases operáveis no PHP: binária, octal, decimal e hexadecimal. Tudo isso tem relação com inteiros porque as notações utilizadas para trabalhar nessas bases são apenas números inteiros. Vamos lá?

Inteiros (int)

Para quem está acostumado com notações matemáticas, o resumo mais curto que podemos mencionar sobre a definição de números inteiros é a que está presente na documentação oficial do PHP: {..., -2, -1, 0, 1, 2, ...}.

Então, desde que não queira representar uma fração (ex.: R$1,50), você poderá representar o seu dado como um número inteiro. Porém, essa notação matemática está incompleta. Afinal, os recursos de manipulação de dados são limitados pela configuração do PHP e pelo sistema operacional onde está rodando.

Como assim, Kiko? Não é inifinito?

Exatamente! Não é infinito de verdade. E para provar isso, há duas constantes*¹ que informam quais os limites máximo e mínimo configurados no seu runtime. São elas: PHP_INT_MAX e PHP_INT_MIN, respectivamente. Portanto, a notação correta seria {PHP_INT_MIN, ..., -2, -1, 0, 1, 2, ..., PHP_INT_MAX}.

  • *¹: vamos falar sobre constantes em outros artigos

Por que preciso saber disso, Kiko?

Bem, a falsa impressão de que os números são realmente infinitos nas suas aplicações podem trazer problemas sérios ao longo do ciclo de vida do projeto. Se por um acaso você fizer uma Google da vida e resolver indexar TUDO registrando por um número sequencial, você pode ter graves problemas ao atingir o número máximo... Porque a aplicação não vai conseguir mais computar um número maior que isso. No mínimo vai estourar a memória e criar um novo "Bug do Milênio".

Então, independente da linguagem, sempre que for desenvolver alguma coisa, lembre-se de descobrir os limites e em quanto tempo o seu projeto poderia excedê-los. O certo é procurar alternativas para não precisar se preocupar com isso, mas nem sempre temos tempo pra isso, certo? Mesmo se o projeto estiver seguindo todos os padrões internacionais, pode acontecer de uma arquitetura não servir para 30 anos de armazenamento de dados, rs.

Enfim, agora que você sabe o que é um inteiro, você sabe como ESCREVER um inteiro?

P*, Kiko, peraê vei

<?php
echo 123;

Toma aí o inteiro 123 haha

É isso mesmo! Mas essa não é a única forma de escrever. Como mencionei lá no começo do artigo, há formas bem interessantes de se trabalhar com números em outras bases numéricas. As sintaxes são bem simples, bastando iniciar o número com o prefixo da base numérica que estará representando:

  • Binário: 0b... (zero, bê... e o número);
  • Octal: 0... (zero... e o número);
  • Decimal: ... (só o número mesmo, sem começar com zero, por motivos óbvios);
  • Hexadecimal: 0x... (zero, xis... e o número).

Mas Kiko, o que é base numérica?

Tem muito estudo envolvido, caso tenha interesse. O máximo que posso fazer por você agora é tentar simplificar tudo o que aprendi de forma resumida... Bem, você aprendeu até aqui que, para representar um número, você precisa usar pelo menos um dos seguintes símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9. Todos os números que você aprendeu na escola são compostos por essa listinha. Já parou pra pensar o porquê?

Bom, quando escrevemos um número sem definir uma base numérica, significa que estamos usando a base numérica padrão que é a decimal. Essa base significa que todos os números são limitados a DEZ símbolos, daí o decimal.

Peraí, Kiko... Então uma base numérica nada mais é do que a quantidade de símbolos disponíveis para descrever um número?

EXATAMENTE. Se você tem dez símbolos para representar um número, toda vez que você atingir o limite de símbolos e for acrescentar mais um, você irá reiniciar aquela coluna e acrescentar o primeiro símbolo à esquerda.

QUÊ?

Ah, vamos à prática: 9 + 1?

10!

Por que?

...

9 é o último símbolo da base decimal. Portanto, quando você acrescenta um número a ele, o dado em sua posição volta para o dígito 0 e o primeiro dígito de valor aparece à esquerda, formando o número "10".

O mesmo processo ocorre em todas as outras bases numéricas:

  • Binária é a base com dois símbolos: 0 e 1. Então 1+1 em binário dá 10!... Porque não tem mais símbolos, o que resulta na mesma operação que mencionei anteriormente.
  • Octal é a base com oito símbolos: 0, 1, 2, 3, 4, 5, 6 e 7. Portanto, 7+1 = 10;
  • Decimal você já conhece muito bem;
  • Hexadecimal é a base com dezesseis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D e F. Ou seja, F + 1 = 10.

Se você converter:

  • 10 binário para inteiro, dá 2;
  • 10 octal para inteiro, dá 8;
  • 10 hexadecimal para inteiro, dá 16.

Quer provas? Rode aí no PHP:

<?php
echo 0b10; // 2 em binário
echo 010; // 8 em octal
echo 0x10; // 16 em hexadecimal

Enfim, acredito que esse é o máximo que posso te explicar superficialmente. Eu, particularmente, acho esse assunto maravilhoso. Foi uma das coisas que mais me engajou a estudar Circuitos Digitais. Espero que você também tenha gostado e aprendido alguma coisa aqui. Não esquece de comentar, beleza?

Inté!

J

Muitooo bom!

1

PHP para Iniciantes

Part 1 of 50

Neste mini-curso, irei falar sobre todos os pontos básicos sobre o PHP, de forma que qualquer pessoa que nunca viu a linguagem poderá conhecer o básico do básico sobre ela.