Mudah. Gunakan bitwise AND untuk membandingkan bilangan Anda dengan nilai 2 ^ bitNumber, yang dapat dihitung secara murah dengan bit-shifting.
//your black magic
var bit = (b & (1 << bitNumber-1)) != 0;
EDIT: Untuk menambahkan sedikit lebih banyak detail karena ada banyak jawaban serupa tanpa penjelasan:
Sebuah bitwise AND membandingkan setiap angka, bit demi bit, menggunakan gabungan AND untuk menghasilkan sebuah angka yang merupakan kombinasi dari bit dimana bit pertama dan bit kedua di tempat itu ditetapkan. Berikut adalah matriks logika logika AND dalam "nibble" yang menunjukkan operasi dari bitwise AND:
0101
& 0011
----
0001 //Only the last bit is set, because only the last bit of both summands were set
Dalam kasus Anda, kami membandingkan angka yang Anda berikan dengan angka yang hanya memiliki bit yang ingin Anda cari. Katakanlah Anda sedang mencari bit keempat:
11010010
& 00001000
--------
00000000 //== 0, so the bit is not set
11011010
& 00001000
--------
00001000 //!= 0, so the bit is set
Pergeseran bit, untuk menghasilkan bilangan yang ingin kita bandingkan, persis seperti namanya: ambil angkanya, direpresentasikan sebagai sekumpulan bit, dan geser bit tersebut ke kiri atau kanan dengan sejumlah tempat. Karena ini adalah bilangan biner dan setiap bit adalah satu pangkat dua yang lebih besar daripada yang ke kanan, menggeser bit ke kiri setara dengan menggandakan angka sekali untuk setiap tempat yang digeser, setara dengan mengalikan angka dengan 2 ^ x. Dalam contoh Anda, mencari bit keempat, kami melakukan:
1 (2^0) << (4-1) == 8 (2^3)
00000001 << (4-1) == 00001000
Sekarang Anda tahu bagaimana hal itu dilakukan, apa yang terjadi di tingkat rendah, dan mengapa berhasil.
var bit = (b & (1 << bitNumber-1)) != 0;