C# Operator bitowego przesunięcia w lewo (<<).

C Operator Bitowego Przesuniecia W Lewo



W programowaniu w języku C# możemy używać operatorów Bitwise do wykonywania operacji na poziomie bitów. Obliczenia poziomu bitów są wykonywane w procesorze podczas wykonywania operacji arytmetycznych, takich jak dodawanie, odejmowanie, mnożenie lub dzielenie. Możemy również wykonywać operacje Bitwise w programowaniu C#, a proces jest prosty. Operatory Bitwise wykonują operację na podanej wartości. Określona jest również liczba bitów do przesunięcia. Istnieje sześć operatorów Bitwise w języku C#, dwa z nich to operatory przesunięcia.

Naszym tematem dyskusji są operatorzy przesunięcia. Operator bitowego przesunięcia w lewo (<<) zostanie szczegółowo wyjaśniony. Operator przesunięcia, jak sama nazwa wskazuje, przesuwa bit z określonej pozycji w lewo lub w prawo. Wartość jest przesuwana w lewo o określoną liczbę bitów przy użyciu operatora przesunięcia bitowego w lewo (<<). Operatory przesunięcia w lewo pobierają dane wejściowe tylko w int (liczba całkowita), uint (liczba całkowita bez znaku), long (długa liczba całkowita) i ulong (długa liczba całkowita bez znaku). Gdy lewy operand należy do innego typu, jest konwertowany na typ całkowity. Typ danych wartości wynikowej zachowuje limit 32 bitów; wyjście nie może być większe niż to. Operatory bitowe sprawiają, że kod jest wydajny i szybszy. Ponadto oferują większą dokładność i precyzję.

Składnia:

Argument_1 << Argument_2







Pierwszy „Operand_1” to wartość przesunięta od lewej do liczby przesunięć zawartych w „Operand_2”. Symbol << w lewo przesuwa „Operand_1”.



Przykład 1:

Operator bitowego przesunięcia w lewo (<<) jest stosowany do wartości całkowitych w tym programie.



przy użyciu Systemu;

klasa Program_1
{
statyczna pustka Główny ( ) {
int Wartość_0 = 3. 4 ;
int Wartość_1 = 65 ;
int rez = Wartość_0 << Wartość_1;
Konsola. Napisz ( „Przesunięcie w lewo to  ” ) ;
Konsola. Napisz ( rez ) ;
}
}

Pierwsza instrukcja zawiera deklarację i inicjalizację dwóch zmiennych typu integer. Pierwsza zmienna to „Wartość_0”, a druga to „Wartość_1”. Przechowywane w nich wartości to „34” i „65”. Przesunęliśmy w lewo wartość 34 za pomocą operatora przesunięcia w lewo (<<). Następnie deklarujemy inną zmienną, która ma typ danych całkowity, aby zapisać wynik. Tutaj używamy operatora przesunięcia w lewo (<<) jako Value_0 << Value_1. Ten operator left przesuwa lewą wartość lewego operandu o podaną wartość w drugim argumencie. „res” przechowuje dane wyjściowe operatora zmiany. Następnie wywołujemy metodę Console.Write() w celu wyświetlenia tekstu „Przesunięcie w lewo to” i wynikowej wartości, która jest przechowywana w „res” na terminalu.





Przykład 2:

Użyjmy operatora przesunięcia w lewo na wartościach całkowitych bez znaku i zobaczmy, jak generują wynik.



przy użyciu Systemu;

klasa Program_2
{
statyczna pustka Główny ( ) {
uint Val_0 = 4435 ;
int  Wart_1 = 64 ;
jednostka wynik = Wartość_0 << Val_1;
Konsola. Napisz ( „Przesunięcie w lewo to” ) ;
Konsola. Napisz ( wynik ) ;
}
}

Tutaj stosujemy operator przesunięcia w lewo na wartości typu liczby całkowitej bez znaku. Jedną rzeczą, o którą musisz zadbać, jest to, że drugi operand musi być wartością typu całkowitego, ponieważ kompilator pobiera tylko wartość całkowitą do przesunięcia.

Po wywołaniu statycznej funkcji void Main() deklarujemy dwie zmienne – jedną z nich jest liczba całkowita bez znaku „Val_0”, a druga wartość całkowitą „Val_1”. Następnie definiujemy kolejną zmienną całkowitą bez znaku, która jest „wynikiem”, aby zachować wynikową wartość po przesunięciu w lewo liczby całkowitej bez znaku. Nie możemy zapisać wyniku w zmiennej typu integer, ponieważ po przesunięciu w lewo wynik jest wartością bez znaku. Instrukcja „Val_0 << Val_1” przesuwa lewy operand, który jest liczbą całkowitą bez znaku. Tworzy wartość całkowitą bez znaku. Na koniec pokaż wynik na ekranie wyjściowym z tekstem „The left shift is” przy użyciu metody Console.Write():

Przykład 3:

W tym przypadku omówimy różne metody używania operatora przesunięcia bitowego w lewo (<<) na długich wartościach całkowitych.

przy użyciu Systemu;

klasa Program_3
{
statyczna pustka Główny ( ) {
długa liczba_0 = Cztery pięć ;
długa liczba_1 = 5 ;

Konsola. Napisz ( „Przesunięcie pozycji long w lewo to” ) ;
Console.WriteLine ( liczba_0 << 3 ) ;
Konsola. Napisz ( „Przesunięcie pozycji long w lewo to” ) ;
Konsola. Napisz ( liczba_0 << Convert.ToInt16 ( numer 1 ) ) ;
}
}

Inicjalizacja dwóch zmiennych typu long integer, „number_0” i „number_1”, jest wykonywana w pierwszej instrukcji. Wywołaj funkcję Console.Write() w celu przedstawienia komunikatu „Przesunięcie w lewo długości długiej to” i wyniku na terminalu. Tutaj stosujemy operator przesunięcia w lewo (<<) w taki sposób, że pierwszy operand umieszczamy jako pierwszą zmienną, a drugi operand jako wartość całkowitą. Kompilator w lewo przesuwa pierwszy operand, którym jest „number_0” o 3 i wyświetla wynik. W następnej instrukcji wypisz kolejną wiadomość na ekranie, korzystając z metody Console.Write(). Tutaj używamy pierwszej zmiennej, „number_0”, jako pierwszego operandu i drugiej zmiennej, „number_1”, jako drugiego operandu. Drugi operand musi być wartością typu całkowitego. Typujemy drugą zmienną „number_1” na typ całkowity za pomocą funkcji Convert.ToInt16(). Następnie wyświetl wynik na konsoli:

Przykład 4:

Ten kod pokazuje, jak możemy przypisać wartości do liczby całkowitej po wykonaniu przesunięcia w lewo na długim operatorze bez znaku.

przy użyciu Systemu;

klasa Program_4
{
statyczna pustka Główny ( ) {
numer głowy_0 = 445 ;

Konsola. Napisz ( „Lewe przesunięcie ulong to” ) ;
Console.WriteLine ( liczba_0 << 8 ) ;
Konsola. Napisz ( „Lewe przesunięcie ulong to” ) ;
Console.WriteLine ( liczba_0 << 16 ) ;
Konsola. Napisz ( „Lewe przesunięcie ulong to” ) ;
Console.WriteLine ( liczba_0 << 32 ) ;

}
}

Najpierw zadeklaruj jedną zmienną typu long integer bez znaku, którą jest „number_0”. Następnie wyświetl tekst „The left shift of ulong is” na terminalu, wywołując metodę Console.Write() . Znajdziemy przesunięcie w lewo „liczby_0” o wartość całkowitą równą 8 i nie musimy nigdzie zapisywać wyniku. Funkcja Console.WriteLine() wyświetla wynik w konsoli. Powtórz ten proces dwukrotnie i zmień wartości drugiego operandu. W ten sposób możemy znaleźć przesunięcie w lewo długiej wartości typu całkowitego bez znaku. Ale jeśli chcemy zapisać wynikową wartość w zmiennej, powinniśmy pamiętać, że wynik jest tego samego typu co pierwszy operand. Jedyna różnica między Console.Write() i Console.WriteLine() polega na tym, że druga funkcja drukuje wynik i przenosi kursor do następnej linii, podczas gdy pierwsza funkcja drukuje tylko wynik, a kursor miga w tej samej linii nawet po wyświetlanie wyjścia.

Wniosek

Przyjrzeliśmy się operatorom Bitwise w języku C#, ich typom i funkcjom. Operator przesunięcia w lewo (<<) służy do przesuwania liczby lub wartości o określoną liczbę bitów w lewo. Operatorzy Bitwise poprawiają wydajność kodu i nie obciążają systemu, ponieważ są operatorami lekkimi. Nasz CPU (komputerowa jednostka przetwarzająca) działa na poziomie Bitowym, ilekroć wykonujemy jakiekolwiek operacje arytmetyczne. Krótko mówiąc, operatory Bitwise są ważne w programowaniu, a C# obsługuje wszystkie operatory Bitwise, w których operator przesunięcia w lewo (<<) jest jednym z nich.