Fácil. Utilice un AND bit a bit para comparar su número con el valor 2 ^ bitNumber, que puede calcularse de forma económica mediante el desplazamiento de bits.
//your black magic
var bit = (b & (1 << bitNumber-1)) != 0;
EDITAR: Para agregar un poco más de detalle porque hay muchas respuestas similares sin explicación:
Un AND bit a bit compara cada número, bit a bit, usando una unión AND para producir un número que es la combinación de bits donde se establecieron tanto el primer bit como el segundo bit en ese lugar. Aquí está la matriz lógica de la lógica AND en un "nibble" que muestra el funcionamiento de un AND bit a bit:
0101
& 0011
----
0001 //Only the last bit is set, because only the last bit of both summands were set
En su caso, comparamos el número que pasó con un número que solo tiene el bit que desea buscar. Digamos que estás buscando el cuarto bit:
11010010
& 00001000
--------
00000000 //== 0, so the bit is not set
11011010
& 00001000
--------
00001000 //!= 0, so the bit is set
El cambio de bits, para producir el número con el que queremos comparar, es exactamente lo que parece: tome el número, representado como un conjunto de bits, y mueva esos bits hacia la izquierda o hacia la derecha en un cierto número de lugares. Debido a que estos son números binarios y, por lo tanto, cada bit es una potencia de dos mayor que el que está a su derecha, el desplazamiento de bits a la izquierda equivale a duplicar el número una vez por cada lugar que se desplaza, equivalente a multiplicar el número por 2 ^ x. En su ejemplo, buscando el cuarto bit, realizamos:
1 (2^0) << (4-1) == 8 (2^3)
00000001 << (4-1) == 00001000
Ahora sabe cómo se hace, qué está sucediendo en el nivel bajo y por qué funciona.
var bit = (b & (1 << bitNumber-1)) != 0;