Múltiplos de bit e byte
Publicado por Talvanes Ferreira de Sousa (última atualização em 04/08/2014)
[ Hits: 5.087 ]
Download BitAndByteMultiples.cs
Este script mostra os múltiplos do bit e do byte em detalhes, tanto como múltiplos decimais redondos (base 1000), quanto em forma de potências de base 2 (base 1024).
/**
Baseado nos exemplos do módulo Wgetter escrito por Fernando [Vol: phoemur]
http://www.vivaolinux.com.br/perfil/verPerfil.php?login=phoemur
Disponível em: https://pypi.python.org/pypi/wgetter/ e https://github.com/phoemur/wgetter
*/
using System;
using System.Collections;
using System.Collections.Generic;
// classe para números inteiros gigantes (BigDecimal)
using System.Numerics;
// um artifício para mostrar agrupamento de dígitos (CultureInfo pt-PT)
using System.Globalization;
Dictionary<ushort, string[]> suffixes = new Dictionary<ushort, string[]>();
suffixes.Add(1000, new string[] {"KB","MB","GB","TB","PB","EB","ZB","YB"});
suffixes.Add(1024, new string[] {"KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"});
// 1º Teste: representando os múltiplos do byte
foreach (ushort num_system in suffixes.Keys)
{
Console.WriteLine("Unidades na base {0}:", num_system);
/* "multiplicador" para o sistema adotado:
* base 1000 (múltiplos de 10) - usado para classificar discos rígidos
* base 1024 (potências de base 2) - classificar memórias semicondutivas (pendrive, unidades flash)
*/
BigInteger multiplicador = new BigInteger(num_system);
BigInteger numSys = new BigInteger(num_system);
CultureInfo ptPT = CultureInfo.CreateSpecificCulture("pt-PT");
// multiplicando e representando ...
foreach (string unid in suffixes[num_system])
{
Console.WriteLine("1 {0}: {1} B = {2} b",
// nome do múltiplo digital
unid,
// represntação em bytes (B)
String.Format(ptPT, "{0:00,0}", multiplicador),
// represntação em bits (b)
String.Format(ptPT, "{0:00,0}", 8 * multiplicador)
);
// atualizando "multiplicador" (índice) para iterar a próxima unidade
multiplicador = BigInteger.Multiply(multiplicador, numSys);
}
Console.WriteLine();
}
Gerando uma "number list" de 6 digitos
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (11)
Assisti Avatar 3: Fogo e Cinzas (3)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









