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