Múltiplos de bit e byte
Publicado por Talvanes Ferreira de Sousa (última atualização em 04/08/2014)
[ Hits: 5.107 ]
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();
}
Teste de desempenho com números primos em C (corrigido)
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









