------
## 最终结论
```python
def findIntegers(n: int) -> int:
    # Convert n to binary and count the number of bits
    binary = bin(n)[2:]
    length = len(binary)
    
    # dp[i] will store the count of valid numbers with i bits
    dp = [0] * (length + 1)
    
    # Base cases
    dp[0] = 1  # There's one way to represent 0 (the empty number)
    dp[1] = 2  # Numbers: 0, 1

    for i in range(2, length + 1):
        dp[i] = dp[i - 1] + dp[i - 2]

    result = 0
    prev_bit = 0

    for i in range(length):
        if binary[i] == '1':
            result += dp[length - i - 1]
            if prev_bit == 1:  # If we found two consecutive ones, break
                break
            prev_bit = 1
        else:
            prev_bit = 0

        if i == length - 1:  # If we reach the last bit and no consecutive ones found
            result += 1

    return result

# Example usage:
print(findIntegers(5))  # Output: 5
```