Всё те же числа

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Всё те же числа

Сообщение DiSe » 24.07.2003 (Чт) 8:17

К примеру: Intg as Long. Можно ли перевести Intg в Integer или др., если это Intg не больше предела доступных чисел Integer(приближённо 32000)? Ведь числа Long занимают в памяти 4 байта, а Integer - 2. Разница есть.

boevik
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 23.07.2002 (Вт) 11:44
Откуда: Israel

Сообщение boevik » 24.07.2003 (Чт) 8:32

Поменять переменной тип в run-time нельзя.
Но присвоить к Integer можно.
Код: Выделить всё
Dim iInt as Integer
Dim lLong as Long

lLong = 30000
iInt = lLong

Только зачем всё это. Сегодня в компе у тебя минимум 64М, не то что раньше в ДОСе.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 24.07.2003 (Чт) 8:59

если тебе не терпится экономить память даже так то тогда объявляй переменные как integer и не мучайся с переводом, заодно и время сэкономишь
Ничто так не ограничивает полёт мысли программиста, как компилятор

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 24.07.2003 (Чт) 9:55

Выигрыша, на самом деле, нет. Нужно использовать данные в размере машинного слова. Или Long для 32-битной архитектуры.

Все остальные размеры так или иначе будут добавлять проблем: или с памятью, или с временем выполнения.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 24.07.2003 (Чт) 10:02

вот в этом вы не правы т.к. регитры AX(например) 2 байта но и он подразделяется на AH и AL
зы но на самом деле для vb не играет никакого значения
Ничто так не ограничивает полёт мысли программиста, как компилятор

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.07.2003 (Чт) 10:30

При чем тут регистры? :shock:

Ну есть АХ длиной в слово. А есть еще и ЕАХ длиной в два слова. А есть еще регистры ММХ они вообще, страно подумать, в 4 слова длиной :)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 24.07.2003 (Чт) 10:43

RayShade писал(а):При чем тут регистры? :shock:
Ну есть АХ длиной в слово. А есть еще и ЕАХ длиной в два слова. А есть еще регистры ММХ они вообще, страно подумать, в 4 слова длиной :)

А кто эти MMX использует то? :D
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 24.07.2003 (Чт) 10:53

2RayShade: это просто к воросу о том что все данные приводятся к размеру 32бита
Ничто так не ограничивает полёт мысли программиста, как компилятор

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.07.2003 (Чт) 10:54

Да, все данные выравниваются до границы 32 бита. И регистры тут не при чем.

DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Сообщение DiSe » 24.07.2003 (Чт) 13:39

Вы конечно все молодцы, но на сегодняшний день проблема быстродействия всё ещё не исчерпала себя. Всё новые и новые программы очень требовательны к ресуксам ПК. Поэтому, я считаю, важно применять в своих проектах только рациональные методы ( скорость - очень важный фактор). На этом я считаю, что тему можно закрыть.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 24.07.2003 (Чт) 13:44

Тебе и советуют применять быстрые методы. Но т.к. производительность и ресурсоёмкость всегда находятся на противоположных полюсах, то приходится выбирать между ними. В частности, используя перменные типа Long даже там где хватило бы Integer, т.к. VB во время исполнения всё равно приведёт их к типу Long на что будет затрачено какое-то время.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 24.07.2003 (Чт) 18:54

не думал я что VB все к 32 битам приводит (все оказывается очень запущено)
говорить о быстродействии когда пишешь на VB довольно таки смешно все равно будет столько лишних операций что прям таки жуть
Ничто так не ограничивает полёт мысли программиста, как компилятор


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 2

    TopList  
cron