Байты в мегабайты\гигабайты

bezanetwork

Client
Регистрация
30.08.2020
Сообщения
73
Благодарностей
1
Баллы
8
Здравствуйте. Есть переменная с байтами, как перевести ее в мегабайты или в гигабайты? Спасибо
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 523
Благодарностей
1 321
Баллы
113
Здравствуйте. Есть переменная с байтами, как перевести ее в мегабайты или в гигабайты? Спасибо
Java кубик + простая математика умножения/деления

1 байте - 8 бит.
1 килобайте - 1024 байт.
1 мегабайте - 1024 килобайт.
1 гигабайте - 1024 мегабайт.

Статья.
Калькулятор
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
напишем удобный, как мне кажется, метод и впихнем его в общий код.
C#:
/// <summary>
        /// байтконвертер
        /// </summary>
        /// <param name="bytes">Переменная с байтами</param>
        /// <param name="suffix">Может принимать одно из значений "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"</param>
        /// <param name="useSuffix">Прилеплять или не прилеплять суффикс true/false</param>
        /// <param name="digits">Количество знаков после запятой</param>
        /// <returns></returns>
        public static string byteconverter(string bytesstring, string suffix, bool useSuffix = false, int digits = 0){
            List<string> values = new List<string>(){"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"};
            try{
                ulong bytes = ulong.Parse(bytesstring);
                return string.Format(@"{0}{1}",Math.Round(bytes/Math.Pow(1024,values.IndexOf(suffix)), digits),useSuffix?suffix:"");
            }catch(Exception ex){return ex.Message;}
        }
А в кубике будем вызывать вот так:
C#:
string convertedbytes = CommonCode.byteconverter(project.Variables["bytes"].Value, "MB", false, 0);
return convertedbytes;
чтобы не возникало вопросов, что и куда вставлять, прикрепляю скриншот
1642675478285.png
ну, и расширим списочек, поддерживаемых выводов
1642675631266.png
 
Последнее редактирование:
  • Спасибо
Реакции: RoyalBank и volody00

bezanetwork

Client
Регистрация
30.08.2020
Сообщения
73
Благодарностей
1
Баллы
8
напишем удобный, как мне кажется, метод и впихнем его в общий код.
C#:
/// <summary>
        /// байтконвертер
        /// </summary>
        /// <param name="bytes">Переменная с байтами</param>
        /// <param name="suffix">Может принимать одно из значений "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"</param>
        /// <param name="useSuffix">Прилеплять или не прилеплять суффикс true/false</param>
        /// <param name="digits">Количество знаков после запятой</param>
        /// <returns></returns>
        public static string byteconverter(string bytesstring, string suffix, bool useSuffix = false, int digits = 0){
            List<string> values = new List<string>(){"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"};
            try{
                ulong bytes = ulong.Parse(bytesstring);
                return string.Format(@"{0}{1}",Math.Round(bytes/Math.Pow(1024,values.IndexOf(suffix)), digits),useSuffix?suffix:"");
            }catch(Exception ex){return ex.Message;}
        }
А в кубике будем вызывать вот так:
C#:
string convertedbytes = CommonCode.byteconverter(project.Variables["bytes"].Value, "MB", false, 0);
return convertedbytes;
чтобы не возникало вопросов, что и куда вставлять, прикрепляю скриншот
Посмотреть вложение 87945
ну, и расширим списочек, поддерживаемых выводов
Посмотреть вложение 87946
Как усовершенствовать, чтобы в случае указания GB, конвертация происходила до сотых. Например 1461425126 байт это 1.46
или 25125122 = 0.02 gb
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
там уже все усовершенствовано. остается только правильно передать в функцию данные
есть же описание, что и за что отвечает.
1642683842303.png
Выполнение кода C# Результат: 1,3611GB
C#:
return CommonCode.byteconverter("1461425126 ", "GB", true, 2);
//Выполнение кода C#  Результат: 1,36GB
и тд
 
  • Спасибо
Реакции: bezanetwork

bezanetwork

Client
Регистрация
30.08.2020
Сообщения
73
Благодарностей
1
Баллы
8
там уже все усовершенствовано. остается только правильно передать в функцию данные
есть же описание, что и за что отвечает.
Посмотреть вложение 87964
Выполнение кода C# Результат: 1,3611GB
C#:
return CommonCode.byteconverter("1461425126 ", "GB", true, 2);
//Выполнение кода C#  Результат: 1,36GB
и тд
Благодарю!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)