C# reprezentacja ciągów binarnych

0

Cześć,
potrzebuję ogarnąć reprezentację ciągów binarnych. Nigdy wcześniej nie programowałem w C#.

Ogólnie chcę przeprowadzać różne operacje na bitach. Obecnie mam stringa, który zawiera ciąg zer i jedynek. Chciałbym się dowiedzieć, czy jest jakiś sposób na robienie np przesunięć, alternatyw, koniunkcji itd. W jaki sposób najlepiej w C# reprezentować takie dane?

Z góry dzięki za pomoc

0

<< >> | & ^ ???
przynajmniej tak mi się wydaje :P w Cpp na 100% zadziała ci << >> & wiem bo czasem używam xD
co do reszty | ^ nie jestem pewien

zmienna << 5
zmienna & 5 ( lel )
// tego lel nie dopisuj xD

zawsze jest na wszystko sposób :D !...
a w sumie nigdy nie próbowałem czegoś takiego jak array[] << 8; ciekawe czy zadziała ;x...

0
thalion napisał(a):

Cześć,
potrzebuję ogarnąć reprezentację ciągów binarnych. Nigdy wcześniej nie programowałem w C#.

Ogólnie chcę przeprowadzać różne operacje na bitach. Obecnie mam stringa, który zawiera ciąg zer i jedynek. Chciałbym się dowiedzieć, czy jest jakiś sposób na robienie np przesunięć, alternatyw, koniunkcji itd. W jaki sposób najlepiej w C# reprezentować takie dane?

Z góry dzięki za pomoc

Nic bardziej prostego

0

Operatory do bitów to :

<< przesunięcie w prawo

przesunięcie w lewo
& koniunkcja
| alternatywa
~ negacja
^ alternatywa rozlączna

Oczywiście nie możemy operować na pojedynczych bitach tylko na całych liczbach całkowitych .
Króciutki program do poeksperymentowania
Wystarczy tylko wkopiuj wklej w visual studio

using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
int liczba;

        liczba = -100;
        ZamienNaBity(liczba);
        liczba = liczba >> 4; // przesuń o cztery pozycje w prawo
        ZamienNaBity(liczba);
        Console.WriteLine();

        liczba = -100;
        ZamienNaBity(liczba);
        liczba = liczba << 4; // przesuń o cztery pozycje w lewo
        ZamienNaBity(liczba);

        Console.WriteLine();
        liczba = int.MinValue;
        ZamienNaBity(liczba);      
        liczba = ~liczba;
        ZamienNaBity(liczba);

        liczba = -0b1111111111111111111111111111111; // nie można za poocą prefiksa 0b wprowadzić najmniejszej liczby int

    }
    static void ZamienNaBity(int liczba)
    {
        int poz = 31;
        
        for(int i = 0; i < 32; i++)
        {
            Console.CursorLeft = poz;
            if ((liczba & 1) == 1) Console.Write("1");
            else
                Console.Write("0");
            liczba = liczba >> 1;
            poz--;
        }
        Console.WriteLine();
    }
}

}

// pozdrawiam !

1 użytkowników online, w tym zalogowanych: 0, gości: 1