Calculate \$ \lfloor n \log_2(n) \rfloor \$, exactly Given an integer \$ n \ge 2 \$, you need to calculate \$ \lfloor n \log_2(n) \rfloor \$, assuming all integers in your language are unbounded.
However, you may not ignore floating-point errors - for example, in python lambda n:int(n*math.log2(n)) is an invalid solution, because for example for n=10**15, int(n*math.log2(n)) is 49828921423310432, while the actual answer is 49828921423310435.
Rules

You can assume the input is an integer \$ n \ge 2 \$
You may use any reasonable I/O method
Standard loopholes are disallowed

Test cases
2 -&gt; 2
3 -&gt; 4
4 -&gt; 8
5 -&gt; 11
6 -&gt; 15
7 -&gt; 19
8 -&gt; 24
9 -&gt; 28
10 -&gt; 33
100 -&gt; 664
1000 -&gt; 9965
10000 -&gt; 132877

10 brownie points for beating my 4 byte 05AB1E answer.
This is code golf, so the shortest answer wins. Good luck!
Python 3, 25 bytes

lambda n:len(bin(n**n))-3

Try it online!
If the answer is \$x\$, then \$x+1 &gt; n\log{n} \ge x\$ holds true, which means \$2^{x+1} &gt; n^n \ge 2^x\$. So we can simply count the number of bits in the binary representation of \$n^n\$.