05AB1E, 3 bytes
Ýo&
Port of @JonathanAllan's Jelly answer, so make sure to upvote him!
Contains zeros (including -loads of- trailing zeros).
Try it online or verify all test cases.
Explanation:
Ý # Create a list in the range [0, (implicit) input]
# i.e. 15 → [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
# i.e. 16 → [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
o # Take 2 to the power of each value
# → [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768]
# → [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536]
& # Bitwise-AND each value with the (implicit) input
# 15 → [1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0]
# 16 → [0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0]
# (and output the result implicitly)