He aquí una fórmula exacta:
Para cualquier número entero positivo $n,$ dejar $T(n)$ sea el número total de bits que se invierten al contar desde $1$ a $n.$ Entonces $$T(n)= 2n - \text{(the number of }1\text{'s in the binary representation of }n)-1.$$ Es fácil demostrarlo por inducción:
Base:
$T(1)= 0 = 2 \cdot 1 - 1- 1.$
Paso de inducción:
Para mayor comodidad, escriba $B(n)$ para el número de $1$ en la representación binaria de $n.$
Supongamos que $T(n)= 2n - B(n)-1.$ Tenemos que demostrar que $T(n+1)= 2n+2 - B(n+1)-1.$
Si la representación binaria de $n$ termina exactamente con $k \; 1$ entonces podemos escribir $n$ en binario como $a_1 \dots a_j 0 1 1 1 \dots 1$ (con $k \; 1$ al final). (Tenga en cuenta que $k$ puede ser $0,$ pero no pasa nada). Así que $n+1$ en binario es $a_1 \dots a_j 1 0 0 0 \dots 0$ (con $k \; 0$ al final). Si se observa el número de $1$ en cada uno de ellos, se puede ver que $$B(n+1)=B(n)-k+1$$ (porque hay $k \; 1$ 's en $n$ que se pierden al pasar a $n+1,$ pero hay una $0$ en $n$ que se convierte en un $1$ en $n+1$ ).
Tenemos que dar la vuelta $k+1$ bits para contar desde $n$ a $n+1,$ así que \begin{align}T(n+1)&=T(n)+k+1 \\\\&=(2n - B(n)-1)+k+1 \\\\&=2n - B(n+1) + 1 \\\\&=2n+2 - B(n+1)-1,\end{align} como se desea, completando la prueba por inducción.
Así que ahora sabemos que para cada entero positivo $n,$ $$T(n)= 2n - \text{(the number of }1\text{'s in the binary representation of }n)-1.$$
Desde $T(n) < 2n$ para todos los enteros positivos $n,$ tenemos $T(n)=O(n).$ Para ver que esta es la mejor estimación posible de ese tipo, observe que $B(n)$ es como máximo $\lfloor \log_2(n)\rfloor+1,$ el número total de bits en la representación binaria de $n.$ Así que \begin{align} T(n) &= 2n-B(n)-2 \\\\& \ge 2n-\lfloor \log_2(n)\rfloor-3. \end{align}
Por cierto, probablemente valga la pena mencionar que esto no es lo que se suele llamar tiempo de ejecución lineal, porque eso se refiere a un tiempo de ejecución que es $O(n)$ donde $n$ es el número de bits de la entrada. En este problema, $n$ es valor de la entrada, no su tamaño . Si medimos el tiempo de ejecución de la manera habitual, basándonos en el tamaño de la entrada, entonces contando desde $1$ a $n$ requiere un tiempo de ejecución exponencial (exponencial en el número de bits del número binario $n).$