Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kakashi_Hatake

As possíveis representações de inteiros

Recommended Posts

Formalmente, as possíveis representações de inteiros são:

 

decimal     : [1-9][0-9]*
           | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
           | [+-]?hexadecimal
           | [+-]?octal

 

 

Para usar a notação octal, você precisa preceder o número com um 0(zero). Para utilizar a notação hexadecimal, preceda número com 0x.

 

Não entendo porque os números 08 e 09 retornam inteiro 0

 

<?php

var_dump( 01 ); // int 1
var_dump( 02 ); // int 2
var_dump( 03 ); // int 3
var_dump( 04 ); // int 4
var_dump( 05 ); // int 5
var_dump( 06 ); // int 6
var_dump( 07 ); // int 7
var_dump( 08 ); // int 0
var_dump( 09 ); // int 0
var_dump( 010 ); // int 8(010 octal = 8 decimal)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque só vai de zero a sete .. :seta: http://en.wikipedia.org/wiki/Octal

 

The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. Numerals can be made from binary numerals by grouping consecutive binary digits into groups of three (starting from the right). For example, the binary representation for decimal 74 is 1001010, which can be grouped into (00)1 001 010 — so the octal representation is 112.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema ocorreu pois eu defini um valor fixo como 09 para um mês.

 

Daí sempre dava mês inválido. Nunca tinha acontecido isso antes :lol:

 

Tá certo, pois se o usuário informar 09 eu uso

 

<?php

$month = '09';

$month = ( int ) $month;

var_dump( $month ); // int 9

 

Entrou uma string e não um inteiro 09 por isso deu tudo certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.