made a little faster using bitwise NOT operator for flooring instead of bitwise OR