Encontre o bit de ordem mais alta em C

O que eu estou procurando é algo em que eu possa inserir um número e ele retornará o bit da ordem mais alta. Tenho certeza de que existe uma maneira simples. Abaixo está um exemplo de saída (esquerda é a entrada)

1 -> 1
2 -> 2
3 -> 2
4 -> 4
5 -> 4
6 -> 4
7 -> 4
8 -> 8
9 -> 8
...
63 -> 32

questionAnswers(13)

yourAnswerToTheQuestion