Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# Bitwise- und Bit-Shift-Operatoren

Bitweise und Bitverschiebungsoperatoren in C#

In diesem Tutorial lernen wir ausführlich bitweise Operatoren und Bitverschiebungsoperatoren in C# kennen. C# bietet 4 bitweise und 2-Bit-Shift-Operatoren.

Bitweise und Bitverschiebungsoperatoren werden verwendet, um Operationen auf Bitebene mit Integer- (int, long usw.) und booleschen Daten durchzuführen. Diese Operatoren werden im wirklichen Leben nicht häufig verwendet.

Wenn Sie daran interessiert sind, mehr zu erfahren, besuchen Sie praktische Anwendungen von bitweisen Operationen.

Die in C# verfügbaren bitweisen und bitverschiebenden Operatoren sind unten aufgeführt.

Liste der bitweisen C#-Operatoren
Operator Operatorname
~ Bitweise Ergänzung
& Bitweises UND
| Bitweises ODER
^ Bitweises exklusives ODER (XOR)
<< Bitweise Verschiebung nach links
>> Bitweise Rechtsverschiebung

Bitweises ODER

Der bitweise ODER-Operator wird durch | dargestellt . Es führt eine bitweise ODER-Operation an den entsprechenden Bits von zwei Operanden durch. Wenn eines der Bits 1 ist , ist das Ergebnis 1 . Andernfalls ist das Ergebnis 0 .

Wenn die Operanden vom Typ bool sind , entspricht die bitweise OR-Operation der logischen OR-Operation zwischen ihnen.

Zum Beispiel

14 = 00001110 (In Binary)
11 = 00001011 (In Binary)

Bitweise OR Betrieb zwischen 14 und 11 Uhr:

00001110
00001011
--------
00001111 = 15 (In Decimal)

Beispiel 1:Bitweises ODER

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);
		}
	}
}

Wenn wir das Programm ausführen, lautet die Ausgabe:

14 | 11 = 15

Bitweises UND

Der bitweise UND-Operator wird durch & dargestellt . Es führt eine bitweise UND-Operation an den entsprechenden Bits von zwei Operanden durch. Wenn eines der Bits 0 ist , ist das Ergebnis 0 . Andernfalls ist das Ergebnis 1 .

Wenn die Operanden vom Typ bool sind , entspricht die bitweise UND-Operation der logischen UND-Operation zwischen ihnen.

Zum Beispiel

14 = 00001110 (In Binary)
11 = 00001011 (In Binary)

Bitweise UND-Verknüpfung zwischen 14 und 11:

00001110
00001011
--------
00001010 = 10 (In Decimal)

Beispiel 2:Bitweises UND

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);
		}
	}
}

Wenn wir das Programm ausführen, lautet die Ausgabe:

14 & 11 = 10

Bitweises XOR

Der bitweise XOR-Operator wird durch ^ dargestellt . Es führt eine bitweise XOR-Operation an den entsprechenden Bits von zwei Operanden durch. Wenn die entsprechenden Bits gleich sind , ist das Ergebnis 0 . Wenn die entsprechenden Bits verschieden sind , ist das Ergebnis 1 .

Wenn die Operanden vom Typ bool sind , entspricht die bitweise XOR-Operation der logischen XOR-Operation zwischen ihnen.

Zum Beispiel

14 = 00001110 (In Binary)
11 = 00001011 (In Binary)

Bitweise XOR-Operation zwischen 14 und 11:

00001110
00001011
--------
00000101 = 5 (In Decimal)

Wenn Sie mehr über die Verwendung von Bitwise XOR erfahren möchten, besuchen Sie The Magic of XOR

Beispiel 3:Bitweises 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);
		}
	}
}

Wenn wir das Programm ausführen, lautet die Ausgabe:

14 ^ 11 = 5

Bitweise Ergänzung

Der bitweise Komplementoperator wird durch ~ dargestellt . Es ist ein unärer Operator, d. h. er arbeitet nur mit einem Operanden. Die ~ Operator invertiert jedes Bit, d.h. ändert 1 zu 0 und 0 zu 1.

Zum Beispiel

26 = 00011010 (In Binary)

Bitweise Komplementoperation auf 26:

~ 00011010 = 11100101 = 229 (In Decimal)

Beispiel 4:Bitweise Ergänzung

using System;
 
namespace Operator
{
	class BitWiseComplement
	{
		public static void Main(string[] args)
		{
			int number = 26, result;
			result = ~number;
			Console.WriteLine("~{0} = {1}", number, result);
		}
	}
}

Wenn wir das Programm ausführen, lautet die Ausgabe:

~26 = -27

Wir haben -27 als Ausgabe, als wir 229 erwarteten . Warum ist das passiert?

Es passiert, weil der binäre Wert 11100101 was wir als 229 erwarten ist eigentlich eine Zweierkomplementdarstellung von -27 . Negative Zahlen im Computer werden im Zweierkomplement dargestellt.

Für jede ganze Zahl n das Zweierkomplement von n wird -(n+1) sein .

Zweierkomplement
Dezimalzahl Binär 2er-Komplement
0 00000000 -(11111111 + 1) =-00000000 =-0 (in Dezimalzahl)
1 00000001 -(11111110 + 1) =-11111111 =-256 (in Dezimalzahl)
229 11100101 -(00011010 + 1) =-00011011 =-27

Überlaufwerte werden im Zweierkomplement ignoriert.

Das bitweise Komplement von 26 ist 229 (dezimal) und das Zweierkomplement von 229 ist -27 . Daher ist die Ausgabe -27 statt 229 .


Bitweise Linksverschiebung

Der bitweise Linksverschiebungsoperator wird durch << dargestellt . Der << Operator verschiebt eine Zahl um eine angegebene Anzahl von Bits nach links. Den niederwertigsten Bits werden Nullen hinzugefügt.

In Dezimalform ist es äquivalent zu

num * 2bits

Zum Beispiel

42 = 101010 (In Binary)

Bitweise Lift-Shift-Operation auf 42:

42 << 1 = 84 (In binary 1010100)
42 << 2 = 168 (In binary 10101000)
42 << 4 = 672 (In binary 1010100000)

Beispiel 5:Bitweise Linksverschiebung

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);
		}
	}
}

Wenn wir das Programm ausführen, lautet die Ausgabe:

42<<1 = 84
42<<2 = 168
42<<4 = 672

Bitweise Rechtsverschiebung

Der bitweise Linksverschiebungsoperator wird durch >> dargestellt . Die >> Operator verschiebt eine Zahl um eine bestimmte Anzahl von Bits nach rechts. Der erste Operand wird um die durch den zweiten Operanden angegebene Anzahl von Bits nach rechts verschoben.

In Dezimalform ist es äquivalent zu

floor(num / 2bits)

Zum Beispiel

42 = 101010 (In Binary)

Bitweise Lift-Shift-Operation auf 42:

42 >> 1 = 21 (In binary 010101)
42 >> 2 = 10 (In binary 001010)
42 >> 4 = 2 (In binary 000010)

Beispiel 6:Bitweise Rechtsverschiebung

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);
		}
	}
}

Wenn wir das Programm ausführen, lautet die Ausgabe:

42>>1 = 21
42>>2 = 10
42>>4 = 2

C Sprache

  1. C#-Schlüsselwörter und Bezeichner
  2. C#-Operatoren
  3. C# Bitwise- und Bit-Shift-Operatoren
  4. C++-Operatoren
  5. C-Programmieroperatoren
  6. Python-Operatoren
  7. Java-Operatoren
  8. IoT und Blockchain – Ein Paradigmenwechsel
  9. Operatoren in C++ mit Beispiel:Was ist, Typen und Programme
  10. Bitweise Operatoren in C:AND, OR, XOR, Shift &Complement