@Nonnull
	public static Number and(@Nonnull Number first, @Nonnull Number second) {
		// Check for widest types first, go down the type list to narrower types until reaching int.
		if (second instanceof Long || first instanceof Long) {
			return first.longValue() & second.longValue();
		} else {
			return first.intValue() & second.intValue();
		}
	}
@Test
	void testAnd() {
		assertEquals(0b00100, NumberUtil.and(0b11100, 0b00111));
		assertEquals(0b00100L, NumberUtil.and(0b11100, 0b00111L));
	}