Observe o código abaixo, em PHP: < ?php$a = 0123;$a = 0x...

Próximas questões
Com base no mesmo assunto
Q2878860 Arquitetura de Software

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:

Alternativas

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