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


