Múltiplos de bit e byte

Publicado por Talvanes Ferreira de Sousa (última atualização em 04/08/2014)

[ Hits: 4.777 ]

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).

  



Esconder código-fonte

/**
    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();
}

Scripts recomendados

Jogo Tetris em C - parte 1

Calendário em C

Aterm multi-color

Ponteiros para funções

Vírus didático para Linux em C


  

Comentários
[1] Comentário enviado por Thihup em 04/08/2014 - 18:40h

É C# , né ?

Para o linux só pelo mono,vou tentar (re) criar esse programa em 'c', que fica mais compreensível

Posso ?

T+

[2] Comentário enviado por talbas em 04/08/2014 - 20:55h


[1] Comentário enviado por Thihup em 04/08/2014 - 18:40h:

É C# , né ?

Para o linux só pelo mono,vou tentar (re) criar esse programa em 'c', que fica mais compreensível

Posso ?

T+


Sim, é C#. Mas talvez eu disponibilize uma versão em Java.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts