Computational Parity Party! The computational parity of an integer is defined as 1 if the integer has an odd number of set bits, and 0 otherwise. (src).
Input

You will receive one nonnegative integer that you will take the parity of. Optionally, you may take the size of the integer in bytes or bits as an argument, but you must specify this in your answer.

Output

You will output the computational parity of the input integer.

Rules

Standard loopholes apply, including but not limited to Abusing native number types to trivialize a problem.

Test cases
You may omit any input that cannot be represented with your language's built-in integer type.
0: 0
1: 1
3: 0
8: 1
13: 1
17: 0
40: 0
52: 1
100: 1
127: 1
365: 0
787: 1
2898: 0
6345: 0
9038: 1
10921: 1
16067: 1
4105748: 1
40766838: 0
1336441507: 1
4294967295: 0

Generated using this program.
The answer with the least amount of bytes in each language wins, which means that I will not be accepting an answer.
Bonus imaginary Internet points for an explanation.
Sandbox link (10k+)
JavaScript (ES6),  18  17 bytes
Similar to my answer to Is this number evil? except that the last iteration returns \$0\$, which saves a byte.

f=n=&gt;n&amp;&amp;!f(n&amp;~-n)

Try it online!

JavaScript (ES6), 30 bytes
Converts to binary, parses as base-3 and returns the parity.

n=&gt;parseInt(n.toString(2),3)&amp;1

Try it online!