Neste exercício, você colocará em prática alguns conhecimentos de aritmética de inteiros através de uma função importante para a computação: a contagem de número de zeros precedentes (number of leading zeros) ou nlz.
A função nlz possui diversas aplicações na computação e, por sua vez, diversas implementações otimizadas. Podemos citar aplicações na simulação de operações de aritmética de ponto flutuante e na implementação de algoritmos de divisão), entre outras.
Um teste de igualdade x == y pode ser implementado em baixo nível usando apenas 3 instruções, caso sua arquitetura disponibilize uma instrução nlz.
Outra forma de se olhar para a função nlz é perceber que ela consiste no elemento construtivo da função logaritmo inteiro na base 2.
Seguem alguns exemplos, em que o inteiro é codificado em 32 bits:
Para este problema, você deverá implementar um programa que leia um número inteiro , de 32 bits, e calcule nlz().
A entrada é composta por um número inteiro .
A saída deverá ser o valor de nlz()
0
32
1
31
-1
0
257
23