Bahasa C
Dalam tutorial ini, kita akan mempelajari secara detail tentang operator bitwise dan bit shift di C#. C# menyediakan 4 operator bitwise dan 2 bit shift.
Operator bitwise dan bit shift digunakan untuk melakukan operasi level bit pada data integer (int, long, dll) dan boolean. Operator ini tidak umum digunakan dalam situasi kehidupan nyata.
Jika Anda tertarik untuk menjelajahi lebih lanjut, kunjungi aplikasi praktis operasi bitwise.
Operator bitwise dan bit shift yang tersedia di C# tercantum di bawah ini.
Operator | Nama Operator |
---|---|
~ | Pelengkap Bitwise |
& | Bitwise DAN |
| | Bitwise ATAU |
^ | Bitwise Eksklusif OR (XOR) |
<< | Pergeseran Kiri Sedikit demi sedikit |
>> | Pergeseran Kanan Bitwise |
Operator bitwise OR diwakili oleh |
. Ia melakukan operasi bitwise OR pada bit yang sesuai dari dua operan. Jika salah satu bit adalah 1
, hasilnya adalah 1
. Jika tidak, hasilnya adalah 0
.
Jika operan bertipe bool
, operasi bitwise OR sama dengan operasi logika OR di antara keduanya.
Misalnya,
14 = 00001110 (In Binary) 11 = 00001011 (In Binary)
Bitwise OR
operasi antara 14 dan 11
00001110 00001011 -------- 00001111 = 15 (In Decimal)
using System;
namespace Operator
{
class BitWiseOR
{
public static void Main(string[] args)
{
int firstNumber = 14, secondNumber = 11, result;
result = firstNumber | secondNumber;
Console.WriteLine("{0} | {1} = {2}", firstNumber, secondNumber, result);
}
}
}
Saat kita menjalankan program, outputnya adalah:
14 | 11 = 15
Operator bitwise AND diwakili oleh &
. Ia melakukan operasi AND bitwise pada bit yang sesuai dari dua operan. Jika salah satu bit adalah 0
, hasilnya adalah 0
. Jika tidak, hasilnya adalah 1
.
Jika operan bertipe bool
, operasi AND bitwise setara dengan operasi AND logis di antara keduanya.
Misalnya,
14 = 00001110 (In Binary) 11 = 00001011 (In Binary)
Bitwise AND operasi antara 14 dan 11
00001110 00001011 -------- 00001010 = 10 (In Decimal)
using System;
namespace Operator
{
class BitWiseAND
{
public static void Main(string[] args)
{
int firstNumber = 14, secondNumber = 11, result;
result = firstNumber & secondNumber;
Console.WriteLine("{0} & {1} = {2}", firstNumber, secondNumber, result);
}
}
}
Saat kita menjalankan program, outputnya adalah:
14 & 11 = 10
Operator XOR bitwise diwakili oleh ^
. Ia melakukan operasi XOR bitwise pada bit yang sesuai dari dua operan. Jika bit yang sesuai sama , hasilnya adalah 0
. Jika bit yang sesuai berbeda , hasilnya adalah 1
.
Jika operan bertipe bool
, operasi XOR bitwise setara dengan operasi XOR logis di antara keduanya.
Misalnya,
14 = 00001110 (In Binary) 11 = 00001011 (In Binary)
Operasi XOR bitwise antara 14 dan 11
00001110 00001011 -------- 00000101 = 5 (In Decimal)
Jika Anda ingin mengetahui lebih lanjut tentang penggunaan Bitwise XOR, kunjungi The Magic of XOR
using System;
namespace Operator
{
class BitWiseXOR
{
public static void Main(string[] args)
{
int firstNumber = 14, secondNumber = 11, result;
result = firstNumber^secondNumber;
Console.WriteLine("{0} ^ {1} = {2}", firstNumber, secondNumber, result);
}
}
}
Saat kita menjalankan program, outputnya adalah:
14 ^ 11 = 5
Operator Bitwise Complement diwakili oleh ~
. Ini adalah operator unary, yaitu beroperasi hanya pada satu operan. ~
operator membalikkan setiap bit yaitu perubahan 1 ke 0 dan 0 ke 1.
Misalnya,
26 = 00011010 (In Binary)
Operasi Pelengkapan Bitwise pada tanggal 26:
~ 00011010 = 11100101 = 229 (In Decimal)
using System;
namespace Operator
{
class BitWiseComplement
{
public static void Main(string[] args)
{
int number = 26, result;
result = ~number;
Console.WriteLine("~{0} = {1}", number, result);
}
}
}
Saat kita menjalankan program, outputnya adalah:
~26 = -27
Kami mendapatkan -27
sebagai output ketika kami mengharapkan 229
. Mengapa ini terjadi?
Itu terjadi karena nilai biner 11100101
yang kami harapkan menjadi 229
sebenarnya adalah representasi pelengkap 2 dari -27
. Angka negatif di komputer direpresentasikan dalam representasi komplemen 2.
Untuk sembarang bilangan bulat n, komplemen 2 dari n
akan menjadi -(n+1)
.
Desimal | Binary | Pelengkap 2 |
---|---|---|
0 | 00000000 | -(11111111 + 1) =-00000000 =-0 (Dalam Desimal) |
1 | 00000001 | -(11111110 + 1) =-11111111 =-256 (Dalam Desimal) |
229 | 11100101 | -(00011010 + 1) =-00011011 =-27 |
Nilai overflow diabaikan dalam komplemen 2.
Pelengkap bitwise dari 26
adalah 229 (dalam desimal) dan komplemen 2 dari 229
adalah -27
. Maka hasilnya adalah -27
bukannya 229
.
Operator shift kiri bitwise diwakili oleh <<
. <<
operator menggeser angka ke kiri dengan jumlah bit tertentu. Nol ditambahkan ke bit paling tidak signifikan.
Dalam desimal, itu setara dengan
num * 2bits
Misalnya,
42 = 101010 (In Binary)
Operasi Bitwise Lift Shift pada 42:
42 << 1 = 84 (In binary 1010100) 42 << 2 = 168 (In binary 10101000) 42 << 4 = 672 (In binary 1010100000)
using System;
namespace Operator
{
class LeftShift
{
public static void Main(string[] args)
{
int number = 42;
Console.WriteLine("{0}<<1 = {1}", number, number<<1);
Console.WriteLine("{0}<<2 = {1}", number, number<<2);
Console.WriteLine("{0}<<4 = {1}", number, number<<4);
}
}
}
Saat kita menjalankan program, outputnya adalah:
42<<1 = 84 42<<2 = 168 42<<4 = 672
Operator shift kiri bitwise diwakili oleh >>
. >>
operator menggeser angka ke kanan dengan jumlah bit tertentu. Operan pertama digeser ke kanan dengan jumlah bit yang ditentukan oleh operan kedua.
Dalam desimal, itu setara dengan
floor(num / 2bits)
Misalnya,
42 = 101010 (In Binary)
Operasi Bitwise Lift Shift pada 42:
42 >> 1 = 21 (In binary 010101) 42 >> 2 = 10 (In binary 001010) 42 >> 4 = 2 (In binary 000010)
using System;
namespace Operator
{
class LeftShift
{
public static void Main(string[] args)
{
int number = 42;
Console.WriteLine("{0}>>1 = {1}", number, number>>1);
Console.WriteLine("{0}>>2 = {1}", number, number>>2);
Console.WriteLine("{0}>>4 = {1}", number, number>>4);
}
}
}
Saat kita menjalankan program, outputnya adalah:
42>>1 = 21 42>>2 = 10 42>>4 = 2
Bahasa C
Bagaimana cara cepat membedakan antara up-cut bit dan down-cut bit? Anda memiliki mata spiral yang dipotong ke atas dan mata spiral yang dipotong ke bawah di rak lemari Anda tetapi sudah lama tidak menggunakannya. Bagaimana Anda bisa mengetahui dengan cepat mana yang mana? Pertama, lihat sisi k
CNC Straight Bits, Up Cut Bits, Down Cut Bits, dan Compression Bits Pendahuluan Bit Router Lurus – Mata mata bor lurus memiliki ujung tombak sejajar dengan badan mata bor atau tangkai mata bor. Meningkatkan Bit Router – Seruling pada jenis mata bor spiral ini digeser dari bawah ke atas, menari
Ketika bahan cair, semi padat, uap, atau udara bergerak di sepanjang perpipaan untuk digunakan dalam suatu aplikasi, aliran bahan perlu diatur. Terlalu banyak bahan dapat menjadi tidak diinginkan untuk aplikasi, menyebabkan kerusakan pada sistem, atau berbahaya bagi pekerja. Selain itu, pekerja haru
Pengeboran adalah proses menghasilkan lubang sedangkan sadap adalah teknik yang digunakan untuk memotong benang di dalam lubang, sehingga mata bor dan alat sadap sering digunakan secara berurutan untuk membuat bagian-bagian CNC dengan lubang ulir. Dalam hal pemilihan ukuran mata bor dan ukuran ketuk