Múltiplos de bit e byte
Publicado por Talvanes Ferreira de Sousa (última atualização em 04/08/2014)
[ Hits: 5.086 ]
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();
}
Preloader.c - Adaptação do Tarik Ahmad (Thiago Alexandre) para linux
Testar o melhor método de organização C (inserção, bolha e shell-sort)
Ajuda para calcular 5 Notas! Não Consigo colocar os gets na formula
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
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Como impedir exclusão de arquivos por outros usuários no (Linux)
Formas seguras de instalar Debian Sid (7)
Alguém executou um rm e quase mata a Pixar! (5)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









