IRONSOFTWAREHOME

Valores binários em C#: Armazenando e exibindo valores binários

Binário em C#: Armazenando e exibindo valores binários em 10 minutos ou menos.

Tim Corey

9m 43s

Os números binários são uma parte essencial da computação, e entender como trabalhar com eles em C# é crucial para lidar com operações de baixo nível, manipulações bit a bit e armazenamento eficiente. Neste artigo, vamos analisar os principais conceitos de armazenamento e exibição de valores binários em C#, seguindo o vídeo de Tim Corey, "Binary in C#: Storing and Displaying Binary Values ​​in 10 minutes or less" ( Binário em C#: Armazenando e exibindo valores binários em 10 minutos ou menos) .

Tim explica este tópico de forma concisa, porém detalhada, facilitando a compreensão. Vamos analisar passo a passo a sua explicação e explorar como os valores binários funcionam em C#.

Storing Binary Values in C#

Tim começa abordando a questão central: como armazenamos um número binário em C#? Ele explica que números binários, como 0b101, representam valores em base-2 e são armazenados em variáveis inteiras.

Para armazenar um valor binário, Tim demonstra a seguinte sintaxe:

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

Aqui, 0b é um prefixo que informa ao C# para interpretar os dígitos seguintes como um número binário. Tim destaca que 0b101 é equivalente a 5 na notação decimal.

Ele também observa que adicionar zeros à esquerda (por exemplo, 0b00000101) não altera o valor. O sistema ainda interpreta como 5 porque esses zeros extras não têm significado numérico.

Printing Binary Values in C#

Após armazenarmos um valor binário, o próximo passo é exibi-lo. Tim destaca um comportamento interessante: quando você imprime um valor armazenado em binário, o C# o converte para decimal por padrão.

Por exemplo:

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

Embora binaryValue tenha sido armazenado como 0b101, o console exibirá 5. Tim explica que o C# trabalha com base-10 por padrão quando exibe valores numéricos.

Para visualizar o valor em formato binário, precisamos realizar uma conversão.

Convertendo números inteiros para formato binário.

Tim apresenta uma maneira simples de formatar um número inteiro como uma string binária:

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

Ele explica que Convert.ToString(value, 2) converte um inteiro para sua representação binária como uma string. Dessa forma, se você armazenou 0b101, o console agora exibirá corretamente 101 em vez de 5.

Preenchimento de valores binários com zeros à esquerda

Tim então aborda um problema que surge frequentemente ao exibir números binários: formatá-los de forma consistente com zeros à esquerda. Em muitos casos, queremos que um número binário apareça em formato de 8 bits (por exemplo, 00000101 em vez de apenas 101).

Ele explica como conseguir isso usando PadLeft:

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

Aqui, PadLeft(8, '0') garante que a string binária sempre tenha pelo menos 8 caracteres, preenchendo quaisquer espaços faltantes com zeros. Isso é especialmente útil ao lidar com valores binários de tamanho byte.

Tim esclarece que as aspas simples em torno de '0' são necessárias porque PadLeft trabalha com caracteres, não strings.

Representação binária de números decimais

Outro ponto importante que Tim faz é que você não precisa inserir números em formato binário (notação 0b) para obter sua representação binária.

Por exemplo, você pode pegar um número decimal padrão e convertê-lo para binário:

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

Aqui, o número 12 é armazenado como um inteiro decimal, mas quando convertido, ele exibe corretamente 1100 em binário.

Tim enfatiza que essa técnica é útil para depurar e entender como os números são armazenados no nível de bits.

Armazenando números binários em diferentes tipos de dados

Tim também aborda como valores binários podem ser armazenados em diferentes tipos de dados numéricos. Embora inteiros (int) sejam os mais comuns, o C# permite armazenar valores binários em outros tipos como uint (inteiro sem sinal) ou long.

Por exemplo:

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

A principal diferença com uint é que ele não suporta valores negativos, enquanto long pode armazenar números muito maiores.

Tim observa que entender essas distinções ajuda ao trabalhar com operações de baixo nível, como deslocamentos bit a bit e mascaramento.

Considerações finais

Tim conclui resumindo os principais pontos:

  1. Números binários são armazenados em tipos inteiros usando o prefixo 0b.
  2. A impressão de um número inteiro resulta, por padrão, na representação decimal, exigindo conversão explícita para saída binária.
  3. Convert.ToString(value, 2) ajuda a converter números em formato binário.
  4. PadLeft garante uma representação consistente de comprimento de bits.
  5. Você pode armazenar números binários em diferentes tipos numéricos, dependendo do caso de uso.

Com essas técnicas, trabalhar com valores binários em C# torna-se muito mais fácil e intuitivo. Para entender melhor o assunto, assista ao vídeo completo dele.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

OR
bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.