Przejdź do treści stopki
Iron Academy Logo
Naucz się C#
Naucz się C#

Inne Kategorie

Wartości binarne w C#: Zapisywanie i wyświetlanie wartości binarnych

Tim Corey
9m 43s

Liczby binarne są nieodłączną częścią informatyki, a zrozumienie, jak pracować z nimi w C# jest kluczowe do wykonywania operacji na niskim poziomie, manipulacji bitowych i efektywnego przechowywania. W tym artykułe omówimy kluczowe pojęcia dotyczące przechowywania i wyświetlania wartości binarnych w C#, zgodnie z filmem Tima Coreya, Binary in C#: Storing and Displaying Binary Values in 10 minutes or less.

Tim wyjaśnia ten temat w sposób zwięzły, ale szczegółowy, ułatwiając jego zrozumienie. Przejdźmy krok po kroku przez jego wyjaśnienie i odkryjmy, jak działają wartości binarne w C#.

Storing Binary Values in C

Tim zaczyna od odpowiedzi na kluczowe pytanie: jak przechowujemy liczbę binarną w C#? Wyjaśnia on, że liczby binarne, takie jak 0b101, reprezentują wartości w systemie dwójkowym i są przechowywane w zmiennych całkowitych.

Aby przechować wartość binarną, Tim demonstruje następującą składnię:

int binaryValue = 0b101; // Represents the decimal number 5
int binaryValue = 0b101; // Represents the decimal number 5

Tutaj, 0b jest prefiksem, który mówi C#, aby interpretować kolejne cyfry jako liczbę binarną. Tim podkreśla, że 0b101 jest równoważne 5 w zapisie dziesiętnym.

Zwraca również uwagę, że dodanie wiodących zer (np. 0b00000101) nie zmienia wartości. System wciąż interpretuje to jako 5, ponieważ dodatkowe zera nie mają znaczenia numerycznego.

Printing Binary Values in C

Gdy przechowamy wartość binarną, kolejnym krokiem jest jej wyświetlenie. Tim wskazuje na interesujące zachowanie: gdy drukujesz wartość przechowaną binarnie, C# domyślnie konwertuje ją na dziesiętną.

Na przykład:

Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5

Mimo że binaryValue zostało zapisane jako 0b101, konsola wyświetli 5. Tim wyjaśnia, że C# domyślnie pracuje z bazą-10 podczas wyświetlania wartości liczbowych.

Aby zobaczyć wartość w formacie binarnym, potrzebujemy konwersji.

Konwertowanie całkowitych na format binarny

Tim wprowadza prosty sposób formatowania liczby całkowitej jako ciągu binarnego:

string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101

Wyjaśnia on, że Convert.ToString(value, 2) przekształca liczbę całkowitą w jej reprezentację binarną w postaci ciągu znaków. W ten sposób, jeśli zapiszesz 0b101, konsola poprawnie wyświetli teraz 101 zamiast 5.

Uzupełnianie wartości binarnych zerami wiodącymi

Tim następnie rozwiązuje problem, który często pojawia się przy wyświetlaniu liczb binarnych: formatowanie ich konsekwentnie z zerami wiodącymi. W wielu przypadkach chcemy, aby liczba binarna pojawiła się w formacie 8-bitowym (np. 00000101 zamiast tylko 101).

Wyjaśnia, jak to osiągnąć za pomocą PadLeft:

string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101

Tutaj PadLeft(8, '0') zapewnia, że ciąg binarny zawsze ma co najmniej 8 znaków, wypełniając brakujące miejsca zerami. Jest to szczególnie przydatne przy pracy z wartościami binarnymi o rozmiarze bajta.

Tim wyjaśnia, że pojedyncze cudzysłowy wokół '0' są wymagane, ponieważ PadLeft działa z znakami, a nie ciągami znaków.

Reprezentacja binarna liczb dziesiętnych

Kolejny ważny punkt, który porusza Tim, to fakt, że nie trzeba wprowadzać liczb w formacie binarnym (notacja 0b), aby uzyskać ich reprezentację binarną.

Na przykład możesz wziąć standardową liczbę dziesiętną i przekonwertować ją na binarną:

int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100

Tutaj liczba 12 jest przechowywana jako liczba całkowita w systemie dziesiętnym, ale po konwersji poprawnie wyprowadza 1100 w binarnym.

Tim podkreśla, że ta technika jest przydatna do debugowania i zrozumienia, jak liczby są przechowywane na poziomie bitowym.

Przechowywanie liczb binarnych w różnych typach danych

Tim wspomina również o tym, jak wartości binarne mogą być przechowywane w różnych typach danych liczbowych. Chociaż liczby całkowite (int) są najczęstsze, C# umożliwia przechowywanie wartości binarnych w innych typach, takich jak uint (liczba całkowita bez znaku) lub long.

Na przykład:

uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number

Kluczowa różnica z uint polega na tym, że nie obsługuje ona wartości ujemnych, podczas gdy long może przechowywać znacznie większe liczby.

Tim zaznacza, że zrozumienie tych różnic pomaga przy pracy z operacjami niskiego poziomu jak przesunięcia bitowe i maskowanie.

Podsumowanie

Tim kończy, podsumowując kluczowe wnioski:

  1. Liczby binarne są przechowywane w typach całkowitych za pomocą prefiksu 0b.
  2. Drukowanie liczby całkowitej domyślnie przedstawia ją w formacie dziesiętnym, wymagając jawnej konwersji dla wyjścia binarnego.
  3. Convert.ToString(value, 2) pomaga przekształcać liczby na format binarny.
  4. PadLeft zapewnia spójną reprezentację długości bitów.
  5. Możesz przechowywać liczby binarne w różnych typach danych numerycznych, w zależności od zastosowania.

Dzięki tym technikom praca z wartościami binarnymi w C# staje się znacznie łatwiejsza i bardziej intuicyjna. Aby lepiej zrozumieć temat, obejrzyj jego pełny film.

Hero Worlddot related to Wartości binarne w C#: Zapisywanie i wyświetlanie wartości binarnych
Hero Affiliate related to Wartości binarne w C#: Zapisywanie i wyświetlanie wartości binarnych

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie