Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 1 / 1
Регистрация: 16.01.2013
Сообщений: 57
1

Перевод байт в мегабиты

14.10.2016, 02:13. Показов 1756. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Требуется перевести байты в мегабиты.
Конкретно нужно замерить ширину канала.
Приведу код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function BytesToMegabites(const i64Size: Int64): string;
const
  i64GB = 1000 * 1000 * 1000;
  i64MB = 1000 * 1000;
  i64KB = 1000;
  var
  bites:int64;
begin
   bites :=i64Size div 8;
  if bites div i64GB > 0 then
    Result := Format('%.2f Гбит', [i64Size / i64GB])
  else if bites div i64MB > 0 then
    Result := Format('%.2f Мбит', [i64Size / i64MB])
  else if bites div i64KB > 0 then
    Result := Format('%.2f Кбит', [i64Size / i64KB])
  else
    Result := IntToStr(bites) + ' Бит';
end;
Как я понял, в переменную просто не влезает размер.
Как я поступаю, качаю файл 5 мб, затем расчитываю скорость таким образом
скорость = размер / время
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2016, 02:13
Ответы с готовыми решениями:

Перевод строки в массив байт
люди срочно помогите как перевести строку например s:='windows' в массив байт ArrayByte:array of...

Перевод с кадров в секунду в мегабиты в секунду
Подскажите пожалуйста как переводить гугл не хочет)

Перевод значения в байт
И так у меня есть значение длины запроса: int lengh = request.Length; И мне нужно его передать в...

Перевод строки в массив байт
Народ помогите пожалуйста . Есть текст , который записан в стринговой переменной , как я понимаю...

11
ZfoxAK
14.10.2016, 05:46
  #2

Не по теме:

Цитата Сообщение от UREK Посмотреть сообщение
i64GB = 1000 * 1000 * 1000;
Вместо заболевшего преподавателя по математике пригласили программиста.
- И так возьмем число 1000. Нет для простаты круглое число 1024

0
1 / 1 / 1
Регистрация: 16.01.2013
Сообщений: 57
14.10.2016, 07:25  [ТС] 3
Вобще-то мы считаем биты а в мегабите не 1024 а именно 1000 килобит.
0
669 / 559 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
14.10.2016, 07:53 4
Цитата Сообщение от UREK Посмотреть сообщение
Вобще-то мы считаем биты а в мегабите не 1024 а именно 1000 килобит.
Вы можете считать как угодно, но 2 в 10 степени 1024.
0
1 / 1 / 1
Регистрация: 16.01.2013
Сообщений: 57
14.10.2016, 09:10  [ТС] 5
Не не, в мегабите именно 1000 килобит, смотрите:
Перевод байт в мегабиты

это гугл
---
Ответы по вопросу будут?
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
14.10.2016, 10:08 6
это вики
https://ru.wikipedia.org/wiki/... 0%B4%D1%83

это яндекс
https://yandex.ru/search/?text... 1%82&lr=38

Цитата Сообщение от UREK Посмотреть сообщение
Result := IntToStr(bites) + ' Бит';
Int64ToStr???
0
1 / 1 / 1
Регистрация: 16.01.2013
Сообщений: 57
14.10.2016, 11:04  [ТС] 7
Гы а вот что в гугле
Перевод байт в мегабиты


Ничего не понимаю

Проблема возникает еще тут.
Delphi
1
  bites :=i64Size div 8;
в переменной bites не помещается походу кол-во битов
0
1 / 1 / 1
Регистрация: 16.01.2013
Сообщений: 57
14.10.2016, 11:06  [ТС] 8
ну теперь все понятно
Миниатюры
Перевод байт в мегабиты  
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
14.10.2016, 11:43 9
Цитата Сообщение от UREK Посмотреть сообщение
в переменной bites не помещается походу кол-во битов
как они могут не помещаться то?
у вас int64 - вы видели его размер?
0
82 / 82 / 39
Регистрация: 17.02.2016
Сообщений: 464
14.10.2016, 13:12 10
изначально в гугле была функция
Delphi
1
2
3
4
5
function BytesToStr(const i64Size: Int64): string;
const
 i64GB = 1024 * 1024 * 1024;
 i64MB = 1024 * 1024;
 i64KB = 1024;
зачем ее было менять?)

если хотите узнать "скорость" по вашей формуле вам нужно
1. измерить время скачки файла
2. выполнить - скорость = размер / время
(узнать размер файла
Delphi
1
FileSize(myFile)
)
3. передать не файл в данною функцию а уже скорость полученною вами (отредактировать вывод информации Кб/сек и тд )


лучше посмотрите готовый исходник http://www.delphisources.ru/pa... afmon.html
похожая тема
Проверка скорости интернета
http://www.webdelphi.ru/2010/0... -v-delphi/
0
1 / 1 / 1
Регистрация: 16.01.2013
Сообщений: 57
14.10.2016, 14:35  [ТС] 11
в меня все работает, но вместо килобайт в секунду, как бы нужно килобиты получать.

Добавлено через 36 минут
ошибся, нужно было не делить а умножать.
кому нужно
Delphi
1
2
3
4
5
6
7
 function BytesToMiB(b:int64):extended;
 var
 t:Extended;
 begin
 t :=b * 8;
 result := t / 1024 / 1024;
end;
дальше обрабатываем CurrToStr
0
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
14.10.2016, 20:08 12
1 килобайт = 8 килобит.
1 мегабайт = 8 мегабит.


Умножайте на 8.
0
14.10.2016, 20:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2016, 20:08
Помогаю со студенческими работами здесь

Перевод числа из строки в байт
При переводе строки типа 10101010 почему-то получается 01010101, и наоборот при переводе 01010101...

Перевод строки в массив байт
Доброго времени суток. Мне нужно сделать класс длинных целых чисел как массив байт. Вопрос в...

Перевод указателя на N байт в файловом потоке
Добрый день, помогите пожалуйста. Есть структура: struct Mystruct { char surname; //...

Перевод массива байт в строку и обратно
Здравсвуйте, в результате шифрования есть некоторая последовательность байт. Как преобразовать эту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru