Site icon Serdar Yılmaz

C# – Byte Birimindeki Sayısal Büyüklüğü Byte’ın Katlarına Çevirme

Açıklama

BytesToString() metodu; parametre olarak girilen sayısal büyüklüğü Byte’ın ilgili katına çevirmektedir.

Kod

public static string BytesToString(long byteCount)
{
    // Byte ve katlarını içeren bir dizi oluşturduk.
    string[] suf = { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
    // Parametre olarak girilen büyüklüğün mutlak değerini aldık. 
    long bytes = Math.Abs(byteCount);
    /* Parametre olarak girilen büyüklüğün mutlak değerinin 1024 tabanında logaritmasını aldık 
       ve elde ettiğimiz değeri, kendisinden küçük veya eşit en büyük tam sayıya yuvarladık.*/
    int place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024)));
    // Parametre olarak girilen büyüklüğün Byte'ın ilgili katındaki değerini bulduk.
    double num = Math.Round(bytes / Math.Pow(1024, place), 1);
    // Byte'ın ilgili katındaki değerini ve birimini geri döndürdük. 
    return (Math.Sign(bytes) * num).ToString() + suf[place];
}

static void Main(string[] args)
{
    Console.WriteLine("98765 Bayt = {0}", BytesToString(9842));
    Console.WriteLine("987654 Bayt = {0}", BytesToString(987654));
    Console.WriteLine("987654321 Bayt = {0}", BytesToString(987654321));
    Console.WriteLine("987654321123 Bayt = {0}", BytesToString(987654321123));
    Console.WriteLine("987654321987654 Bayt = {0}", BytesToString(987654321987654));
    Console.WriteLine("1152921504606840000 Bayt = {0}", BytesToString(1152921504606840000));
}

Önizleme

98765 Bayt = 9,6KB
987654 Bayt = 964,5KB
987654321 Bayt = 941,9MB
987654321123 Bayt = 919,8GB
987654321987654 Bayt = 898,3TB
1152921504606840000 Bayt = 1024PB
Press any key to continue . . .

Serdar YILMAZ

Exit mobile version