Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 16:07   #1
kholoshchak
Пользователь
 
Регистрация: 17.03.2011
Сообщений: 43
По умолчанию Перевести Gb в байты

Всем добрый день... Необходимо перевести Gb -> Mb; Gb -> Kb; Gb -> байты. Но при переводе столкнулся с проблемой, если ввожу 2 Gb то получаю отрицательный результат в байтах, а если к примеру 4 Gb то вообще 0. В чем может быть причина и что не так.
Вложения
Тип файла: rar Size.rar (315.4 Кб, 9 просмотров)
kholoshchak вне форума
Старый 23.12.2013, 16:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В Integer результат не умещается, сделай в Int64
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 23.12.2013, 16:39   #3
kholoshchak
Пользователь
 
Регистрация: 17.03.2011
Сообщений: 43
По умолчанию

Все равно результат такой же. Здесь же простое умножение, почему получается 0???????
kholoshchak вне форума
Старый 23.12.2013, 16:46   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что простое умножение не может к переполнению привести? Еще как может и именно оно чаще всего и приводит. Да и почитайте, что такое тип Integer, какое максимальное и минимальное значение туда впихнуть можно. Заодно и другие целочисленные типы узнайте какие бывают
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 23.12.2013, 21:47   #5
DCxDemo
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 17
По умолчанию

диапазон integer -2147483648..2147483647
посчитай чему равны 4GB в калькуляторе виндовом и потом посмотри, влезает в этот диапазон или нет.
DCxDemo вне форума
Старый 24.12.2013, 14:23   #6
kholoshchak
Пользователь
 
Регистрация: 17.03.2011
Сообщений: 43
По умолчанию

По диапазону подходит Int64, но все равно получаю 0, хотя написано что он поддерживает функцию перевода IntToStr. Делаю следующим образом:

var
A: int64;
begin
A:=SpinEdit1.Value * 1024 * 1024 * 1024;
Edit3.Text:=SysUtils.IntToStr(A);
end;

Что я делаю не так? Как мне сделать перевод? Может для этого есть какие нибудь специальные функции? Очень нужна помощь.
kholoshchak вне форума
Старый 24.12.2013, 14:33   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Нужно, что бы один из сомножителей был Int64. Например
Код:
A:=Int64(SpinEdit1.Value) * 1024 * 1024 * 1024;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 24.12.2013, 14:40   #8
kholoshchak
Пользователь
 
Регистрация: 17.03.2011
Сообщений: 43
По умолчанию

Аватар, спасибо тебе большое. наконец-то я получил что хотел.
kholoshchak вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ байты Mr.Fank C++ Builder 0 18.10.2011 21:19
Удалить байты KoBRaAndrey Общие вопросы Delphi 3 22.01.2010 17:53
Байты и биты Karp_13 Общие вопросы Delphi 9 10.11.2009 00:33
Байты в стринги FaTaL Общие вопросы Delphi 9 18.04.2008 15:46