Salah satu fitur penting dalam pemprograman arduino adalah kemampuan manipulasi data pada tingkat bit, dengan begitu, kita bisa secara langsung menulis pada register hardware yang terhubung pada arduino, melakukan komunikasi serial menggunakan protokol I2C atau SPI, serta juga bisa mengambil data mentah dari sensor dan mengolahnya menjadi informasi yang kita perlukan.
Untuk melakukan manipulasi data pada tingkat bit, kita perlu mempelajari tentang bitwise operator. Sekarang langsung saja kita bahas tentang operator ini :
Bitwise AND (&)
Berfungsi untuk melakukan operasi bilangan biner antara dua nilai integer, dimana setiap bit dari dua nilai tersebut akan dibandingkan dan hasilnya mengikuti syarat kondisi logika AND. Pada logika AND, jika kedua bit bernilai 1 maka outputnya bernilai 1, selain itu hasilnya akan nol.
Ayo kita coba langsung ke program, ketik program di bawah ini
Upload program dan buka serial monitor, hasilnya sama dengan gambar dibawah ini
Terlihat pada serial monitor bahwa hasil operasi bitwise and antara variabel a dan b adalah 73. Kenapa bisa hasilnya 73 ? coba lihat gambar dibawah
bit ke-0 variabel a dibandingkan dengan bit ke-0 variabel b, karena keduanya bernilai 1 maka, outputnya bernilai 1 (sesuai dengan syarat logika AND). Begitu seterusnya sampai dengan bit ke-7. Sehingga didapat output dari operasi tersebut adalah 01001001, bilangan biner itu jika dikonversi ke desimal adalah 73.
bitwise OR (|)
Berfungsi untuk melakukan operasi bilangan biner antara dua nilai integer, dimana setiap bit dari dua nilai tersebut akan dibandingkan dan hasilnya mengikuti syarat kondisi logika OR. Pada logika OR, jika salah satu bit atau keduanya bernilai 1, maka outputnya adalah 1, selain itu outputnya 0
Kita langsung ke contoh program
upload program dan buka serial monitor, hasilnya sama dengan gambar dibawah ini
Terlihat pada serial monitor bahwa hasil operasi bitwise or antara variabel a dan b adalah 125.
bit ke-0 variabel a dibandingkan dengan bit ke-0 variabel b, karena keduanya bernilai 1 maka, outputnya bernilai 1 (sesuai dengan syarat logika OR). Begitu seterusnya sampai dengan bit ke-7. Sehingga didapat output dari operasi tersebut adalah 01111101, bilangan biner itu jika dikonversi ke desimal adalah 125.
bitwise XOR (^)
Berfungsi untuk melakukan operasi bilangan biner antara dua nilai integer, dimana setiap bit dari dua nilai tersebut akan dibandingkan dan hasilnya mengikuti syarat kondisi logika XOR. Pada logika XOR, output akan bernilai 1 jika inputnya berbeda nilai.
upload program dan buka serial monitor, hasilnya sama dengan gambar dibawah ini
Terlihat pada serial monitor bahwa hasil operasi bitwise xor antara variabel a dan b adalah 52.
bit ke-0 variabel a dibandingkan dengan bit ke-0 variabel b, karena keduanya bernilai 1 maka, outputnya bernilai 0 (sesuai dengan syarat logika XOR). Begitu seterusnya sampai dengan bit ke-7. Sehingga didapat output dari operasi tersebut adalah 00110100, bilangan biner itu jika dikonversi ke desimal adalah 52.
bitwise NOT (~)
Tidak seperti bitwise AND dan OR, bitwise NOT hanya diterapkan pada satu operand saja. Ketika suatu nilai memakai bitwise NOT maka setiap bit-nya akan dibalik kondisi (bit 0 akan menjadi bit 1 dan sebaliknya).
bitwise NOT bisa menyebabkan suatu nilai integer menjadi negatif, itu karena bit paling kiri dari data integer nilainya dibalik. bit ini disebut sign bit, yaitu bit yang menentukan nilai negatif atau positif. Sign bit 0 membuat variabel bertanda positif, sehingga jika sign bit berubah menjadi 1, nilai variabel akan bertanda negatif.
Bitshift kanan (>>)
berfungsi untuk menggeser seluruh bit ke kanan sebesar nilai yang diinginkan.
X adalah sebuah nilai yang bit nya akan digeser, tipe data yang diizinkan adalah byte, long, int. sedangkan n adalah jumlah pergeseran bit yang dilakukan. Output dari operasi ini adalah sebuah nilai hasil pergeseran bit nilai X yang digeser ke kanan sebesar n. Contoh, nilai X adalah 5, bilangan binernya 0b00000101, kita melakukan operasi X >> 1, ini menyebabkan bilangan biner nilai X akan bergeser 1 ke kanan, sehingga hasilnya adalah 0b00000010 bilangan desimalnya adalah 2.
Bitshift kiri (<<)
Berfungsi untuk menggeser seluruh bit ke kiri sebesar nilai yang diinginkan.
X adalah sebuah nilai yang bit nya akan digeser, tipe data yang diizinkan adalah byte, long, int. sedangkan n adalah jumlah pergeseran bit yang dilakukan. Output dari operasi ini adalah sebuah nilai hasil pergeseran bit nilai X yang digeser ke kiri sebesar n. Contoh, nilai X adalah 5, bilangan binernya 0b00000101, kita melakukan operasi X << 2, ini menyebabkan bilangan biner nilai X akan bergeser 1 ke kiri, sehingga hasilnya adalah 0b00010100 bilangan desimalnya adalah 20.
Sekarang ayo kita coba menerapkannya pada program
upload program dan buka serial monitor, hasilnya sama dengan gambar dibawah ini
Sekarang ayo kita bedah hasilnya, kenapa nilai variabel X ketika di shift ke kanan (>>) hasilnya jadi 2 dan ketika di shift ke kiri (<<) hasilnya menjadi 20 ?.
Desimal 5 (Variabel X) bilangan biner nya 0101, ketika di shift ke kanan (>>) sekali, Least Significant Bit (LSB) akan dihilangkan kemudian ditambahkan 0 didepan Most Significant Bit dan menggeser bit yang lainnya ke kanan.
0101 >> 0010
Sedangkan di shift ke kiri (<<) 2 kali, bilangan biner akan ditambahkan 0 dibelakang Least Significcant Bit (LSB) dan menggeser semua bit nya ke kiri.
0101 << 10100
215 pemikiran pada “Bitwise Operator Pada Pemrograman Arduino”
Understanding bitwise operators is really key for efficient Arduino programming, especially when working with hardware registers. I found some related concepts explained clearly on https://tinyfun.io/game/snapstyle-dress-up, which helped solidify my understanding.
Refer friends, earn cash—sign up now! https://shorturl.fm/6cc5f
Invite your network, boost your income—sign up for our affiliate program now! https://shorturl.fm/jt3V4
https://shorturl.fm/HOKuf
https://shorturl.fm/pVIzL
https://shorturl.fm/K4bN5
https://shorturl.fm/b5FRu
https://shorturl.fm/V1mLb
https://shorturl.fm/Cc5cP
https://shorturl.fm/R3qje
https://shorturl.fm/yjbaf
https://shorturl.fm/NFgcS
https://shorturl.fm/hRZ5B
https://shorturl.fm/ivfMM
https://shorturl.fm/CreVS
https://shorturl.fm/jkEJU
https://shorturl.fm/VSuCC
https://shorturl.fm/Aqrmu
https://shorturl.fm/dMFyf
https://shorturl.fm/E05FB
https://shorturl.fm/SdPYh
https://shorturl.fm/eUZyN
https://shorturl.fm/H0Kn2
https://shorturl.fm/yIZGV
https://shorturl.fm/JOht1
https://shorturl.fm/4kXux
https://shorturl.fm/0IarE
https://shorturl.fm/jsn7k
https://shorturl.fm/WI4Tw
https://shorturl.fm/n25u9
https://shorturl.fm/Z8waS
https://shorturl.fm/Rmemu
https://shorturl.fm/Is7jP
https://shorturl.fm/lZj2p
https://shorturl.fm/NbQdv
https://shorturl.fm/bcVoS
https://shorturl.fm/m1m4O
https://shorturl.fm/Fo6kj
https://shorturl.fm/e7KHA
https://shorturl.fm/rkSvY
https://shorturl.fm/GjrqT
https://shorturl.fm/pamAD
https://shorturl.fm/MeBLC
https://shorturl.fm/FkYnk
https://shorturl.fm/mfh2M
https://shorturl.fm/wpjdx
https://shorturl.fm/pjfob
https://shorturl.fm/79R4f
https://shorturl.fm/7gunY
https://shorturl.fm/5omoK
https://shorturl.fm/l8m8e
https://shorturl.fm/NUaTE
https://shorturl.fm/GyWI5
https://shorturl.fm/wKIY7
https://shorturl.fm/2JGR7
https://shorturl.fm/DHJZB
https://shorturl.fm/8soXv
https://shorturl.fm/cOJWD
https://shorturl.fm/7xsXt
https://shorturl.fm/o5tuV
https://shorturl.fm/tss25
https://shorturl.fm/iF0Re
https://shorturl.fm/hzHNS
https://shorturl.fm/yWKFK
https://shorturl.fm/Bq61O
https://shorturl.fm/6oJh5
https://shorturl.fm/btQ1e
https://shorturl.fm/XebMH
https://shorturl.fm/HQzc6
https://shorturl.fm/mIqGi
https://shorturl.fm/78x8t
https://shorturl.fm/FxTUi
https://shorturl.fm/FEnvQ
https://shorturl.fm/LbjlQ
https://shorturl.fm/YTMsE
https://shorturl.fm/IlHKo
https://shorturl.fm/NSrsA
https://shorturl.fm/W2Erk
https://shorturl.fm/Y1GtT
https://shorturl.fm/wxniP
https://shorturl.fm/hAts9
https://shorturl.fm/SB15f
https://shorturl.fm/xokeJ
https://shorturl.fm/lJfCP
https://shorturl.fm/q2ekn
https://shorturl.fm/3maSy
https://shorturl.fm/vgVxC
真免费!价值万元资源,不要一分钱,网址:https://www.53278.xyz/
https://shorturl.fm/MX4i2
https://shorturl.fm/e1wc3
https://shorturl.fm/LIglg
https://shorturl.fm/HmCea
https://shorturl.fm/fyF9S
https://shorturl.fm/sN5Iv
https://shorturl.fm/YYFE5
https://shorturl.fm/a8XEr
https://shorturl.fm/fnDjs
https://shorturl.fm/mGa6T
https://shorturl.fm/HZlJG
https://shorturl.fm/tSn2R
https://shorturl.fm/jtT2q
https://shorturl.fm/uv9z9
https://shorturl.fm/fkOWn
https://shorturl.fm/kEdvw
https://shorturl.fm/XUvGL
https://shorturl.fm/wuG7T
https://shorturl.fm/WA8cO
https://shorturl.fm/RtdzX
https://shorturl.fm/qkOrA
https://shorturl.fm/Nv6jj
https://shorturl.fm/7XWrw
https://shorturl.fm/cyOUr
https://shorturl.fm/xRZOK
https://shorturl.fm/ExI4m
https://shorturl.fm/iduzP
https://shorturl.fm/O3R7V
益群网:终身分红,逆向推荐,不拉下线,也有钱赚!尖端资源,价值百万,一网打尽,瞬间拥有!多重收益,五五倍增,八级提成,后劲无穷!网址:1199.pw
https://shorturl.fm/ixkfK
https://shorturl.fm/9dJjY
https://shorturl.fm/iocyV
https://shorturl.fm/w9XX6
https://shorturl.fm/1XIoc
https://shorturl.fm/Q8cJe
https://shorturl.fm/6lSmS
https://shorturl.fm/7uV37
https://shorturl.fm/gVrUL
https://shorturl.fm/a8Bsc
https://shorturl.fm/36fzS
https://shorturl.fm/x0INV
https://shorturl.fm/SCTQv
https://shorturl.fm/9d1ys
https://shorturl.fm/kp3Ly
https://shorturl.fm/H6CJn
https://shorturl.fm/TyOZt
https://shorturl.fm/BhD5e
https://shorturl.fm/2iDow
https://shorturl.fm/ZDuIW
https://shorturl.fm/DgQXP
https://shorturl.fm/gnPjr
https://shorturl.fm/OLY7v
https://shorturl.fm/goM90
https://shorturl.fm/hNnT2
https://shorturl.fm/WOVkP
https://shorturl.fm/EIOHu
https://shorturl.fm/eZEi9
https://shorturl.fm/8E1pL
https://shorturl.fm/LiHpK
https://shorturl.fm/5wzaV
https://shorturl.fm/bRECx
https://shorturl.fm/e1eu5
https://shorturl.fm/q5CTo
https://shorturl.fm/LJsmT
https://shorturl.fm/NakR7
https://shorturl.fm/FTqeV
https://shorturl.fm/rYGCK
https://shorturl.fm/Zq4iJ
https://shorturl.fm/yQCxa
https://shorturl.fm/bOlTH
https://shorturl.fm/acz2v
https://shorturl.fm/unGlQ
https://shorturl.fm/pewuK
https://shorturl.fm/K9Lqb
https://shorturl.fm/RM1xv
https://shorturl.fm/AC0SV
https://shorturl.fm/ZQpoL
https://shorturl.fm/JLSac
https://shorturl.fm/f6qLL
https://shorturl.fm/srURT
https://shorturl.fm/RXmFU
https://shorturl.fm/SqHKU
https://shorturl.fm/C3Kfs
https://shorturl.fm/fvXVZ
https://shorturl.fm/PQ97A
https://shorturl.fm/VHlkH
Understanding bitwise operators is really key for efficient Arduino programming, especially when working with hardware registers. I found some related concepts explained clearly on https://tinyfun.io/game/snapstyle-dress-up, which helped solidify my understanding.
https://shorturl.fm/nBPrt
https://shorturl.fm/K57Rn
https://shorturl.fm/QgknX
https://shorturl.fm/Omw4G
https://shorturl.fm/zApLm
https://shorturl.fm/X36kW
https://shorturl.fm/zNSmS
https://shorturl.fm/I6UX2
https://shorturl.fm/F0Od2
https://shorturl.fm/XhGli
https://shorturl.fm/3sUYI
https://shorturl.fm/GoZZo
https://shorturl.fm/k01Mz
https://shorturl.fm/pNvXd
https://shorturl.fm/ErV7f
https://shorturl.fm/SbLpy
https://shorturl.fm/ETvaN
https://shorturl.fm/IVqg1
https://shorturl.fm/d65p4
https://shorturl.fm/385bn
https://shorturl.fm/u7azc
https://shorturl.fm/Q4y8Z
https://shorturl.fm/R57vc
https://shorturl.fm/XTt4a
https://shorturl.fm/HHjLx
https://shorturl.fm/vPx1k
https://shorturl.fm/DtApS
https://shorturl.fm/xBaaW
https://shorturl.fm/t7sLL
https://shorturl.fm/R1lpw
https://shorturl.fm/ovKBD
https://shorturl.fm/Gq3gJ
https://shorturl.fm/ueQxY
https://shorturl.fm/VmSSC
https://shorturl.fm/trH3F
https://shorturl.fm/oCVtK
https://shorturl.fm/dFZj8
Partner with us and enjoy high payouts—apply now!
Drive sales, collect commissions—join our affiliate team!
Boost your income effortlessly—join our affiliate network now!
Sign up now and access top-converting affiliate offers!