Observe o código abaixo, em PHP: < ?php$a = 0123;$a = 0x...
Observe o código abaixo, em PHP:
< ?php
$a = 0123;
$a = 0x1A;
? >
Em conformidade com as regras de sintaxe em PHP, $a = 0123; e $a = 0x1A; representam, respectivamente, os seguintes números:
- Gabarito Comentado (1)
- Aulas (1)
- Comentários (1)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a alternativa D.
Vamos entender o motivo:
O código PHP apresentado:
<?php
$a = 0123;
$a = 0x1A;
?>
Esse código está lidando com números em diferentes bases numéricas:
1. Base Octal:
Em PHP, quando um número é precedido por um zero (0
) e não por um x
, ele é interpretado como um número na base octal (base 8). No caso, $a = 0123;
está definindo o valor de $a
como um número octal. Para converter este número octal para decimal:
0123 (octal) = 1*8^2 + 2*8^1 + 3*8^0 = 1*64 + 2*8 + 3*1 = 64 + 16 + 3 = 83 (decimal)
2. Base Hexadecimal:
Quando um número é precedido por 0x
, ele é interpretado como um número na base hexadecimal (base 16). No caso, $a = 0x1A;
está definindo o valor de $a
como um número hexadecimal. Para converter este número hexadecimal para decimal:
0x1A (hexadecimal) = 1*16^1 + 10*16^0 = 1*16 + 10*1 = 16 + 10 = 26 (decimal)
Analisando as alternativas:
Alternativa D - Correta: A alternativa afirma que $a = 0123;
é equivalente ao valor octal que, em decimal, é 83, e que $a = 0x1A;
é equivalente ao valor hexadecimal que, em decimal, é 26. Esta é a interpretação correta.
Alternativa A - Incorreta: Afirma que $a = 0123;
é decimal 83 (correto), mas $a = 0x1A;
é decimal -10, o que está incorreto.
Alternativa B - Incorreta: Afirma que $a = 0123;
é decimal 123, o que está errado, pois 0123 é octal e seu valor decimal é 83.
Alternativa C - Incorreta: Afirma que $a = 0123;
é decimal 123 (incorreto) e $a = 0x1A;
é decimal -123 (incorreto).
Alternativa E - Incorreta: Afirma que 0123 é equivalente a 123 em decimal (incorreto), e que 0x1A é equivalente a 10 em decimal (também incorreto).
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
0x1A - 0x significa que é decimal , logo 1A , 16 + 10 = 26
0123 - 83 em octal.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo