Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# Bitwise dan Bit Shift Operator

C# Bitwise dan Bit Shift Operator

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.

Daftar Operator C# Bitwise
Operator Nama Operator
~ Pelengkap Bitwise
& Bitwise DAN
| Bitwise ATAU
^ Bitwise Eksklusif OR (XOR)
<< Pergeseran Kiri Sedikit demi sedikit
>> Pergeseran Kanan Bitwise

Bitwise ATAU

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)

Contoh 1:Bitwise ATAU

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

Bitwise DAN

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)

Contoh 2:Bitwise DAN

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

Bitwise XOR

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

Contoh 3:Bitwise 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

Pelengkap Bitwise

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)

Contoh 4:Pelengkap Bitwise

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) .

pelengkap 2
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 .


Pergeseran Kiri Sedikit demi sedikit

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)

Contoh 5:Pergeseran Kiri Bitwise

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

Pergeseran Bitwise Kanan

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)

Contoh 6:Pergeseran Kanan Bitwise

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

  1. C# Kata Kunci dan Pengidentifikasi
  2. C# Operator
  3. C# Bitwise dan Bit Shift Operator
  4. Operator C++
  5. Operator Pemrograman C
  6. Operator Python
  7. Operator Jawa
  8. IoT dan blockchain – Perubahan paradigma
  9. Operator di C++ dengan Contoh:Apa itu, Jenis dan Program
  10. Operator Bitwise di C:AND, OR, XOR, Shift &Complement