Du bekommst ein int übergeben, also könntest Du hin gehen und die Anzahl der Bits von int nutzen.
Wenn nur positive Zahlen betrachtet werden sollen, dann wäre das Vorzeichenbit unnötig (also 1 Bit weniger).
Wenn die Anzahl der Bits stimmen soll, dann kannst Du
a) es natürlich programmatisch machen und es so einfach ermitteln.
b) Mathematisch - die Anzahl der Stellen kann man heraus bekommen. Dazu muss man sich nur erinnern, was denn so eine Binäre Zahl bedeutet:
die Stellen haben immer einen Wert von 2 hoch (Stelle - 1)
Bei 1000 dann ist das die 4te Stelle und damit den Wert von 2 hoch 3.
Wenn ich nun eine 1 nur mit 0er habe und das ist an Stelle x, dann ist es 2 hoch (x-1):
wert = 2 ^ (x-1)
Das kann man nach x umstellen - dazu dient der log2 ==> x-1 = log2(wert) ==> x = log2(wert)+1
Nun habe ich aber nicht nur 0er. Aber das führt dann nur zu nachkomma-Werten. Daher kann man dann einfach "abschneiden".
Jetzt muss man nur aufpassen: log2(1) = 0. Aber log2(0)? Das ist also ein Sonderfall, den man separat behandeln sollte.