Qual é o valor de X? O programa a seguir usa a função
multiple para determinar se o inteiro digitado pelo teclado
é um múltiplo de um inteiro X. Examine a função
multiple e depois determine o valor de X.
Passo 1
Para determinar o valor de X, veremos o programa dado e examinaremos a função denominada multiple. Assim, considere o seguinte:
A função main lê um valor inteiro do usuário e invoca a função multiple passando o valor fornecido como entrada de parâmetro.
A função multiple determina se o valor dado é um múltiplo de X.
Dentro da função, as variáveis mask e multi são inicializadas com valor 1.
Em seguida, ele itera 10 vezes para comparar cada bit do valor inteiro com o valor da máscara. Se o resultado desta comparação for 1, então o loop termina e implica que o valor dado não é um múltiplo de X. Caso contrário, se o resultado for 0, ele prossegue com a iteração e passa para o próximo bit a ser comparado deslocando o valor da máscara para a esquerda em 1 bit.
Passo 2
Levando em consideração a situação acima, devemos notar que se o loop itera 10 vezes sem satisfazer a condição que determina se o valor não é múltiplo de X, então ele também desloca o valor da máscara 10 vezes em 1 bit. Isso implica que o valor da máscara nos dará os bits 10000000000 que é equivalente ao valor inteiro 1024.
Assim, o valor de X é 1024.
Resposta
Ver o desenvolvimento.