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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2015, 13:59   #11
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Это выделяемая под него память. Самих элементов в памяти меньше. Помним, что максимум множество включает 256 элементов.

Последний раз редактировалось WinCoder; 26.01.2015 в 14:02.
WinCoder вне форума Ответить с цитированием
Старый 26.01.2015, 14:30   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Самих элементов в памяти меньше.
Элемент - 1 в соответствующем бите соответствующего байта. И какая разница одна она или их 256? Константа она и есть константа.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.01.2015, 14:31   #13
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Такая что будет проверяться либо 1 элемент, либо 256
И вообще как элемент может занимать 1 бит, если он состоит из одного Ansi байта, или двух юникодных?
WinCoder вне форума Ответить с цитированием
Старый 26.01.2015, 14:33   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не будет, по коду символа вычисляется нужный байт и бит, а там просто and
Цитата:
И вообще как элемент может занимать 1 бит, если он состоит из одного Ansi байта, или двух юникодных
Позиционно. Множеств юникодных нет. Есть Char или AnsiChar в новье
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 26.01.2015 в 14:36.
Аватар вне форума Ответить с цитированием
Старый 26.01.2015, 14:40   #15
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Char в XE является WideChar. То бишь юникодным символом. Почему собственно некоторые вычисления, написанные под D7 и работают не верно под юникодом.
WinCoder вне форума Ответить с цитированием
Старый 26.01.2015, 14:47   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Char для не юникодных, D7 например. AnsiChar для юникодных
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.01.2015, 14:50   #17
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Допустим. Ну а как так получается, что проверка большого количества элементов множества по вычислительным ресурсам равна проверке малого количества элементов множества. Оптимизация? Тогда как она работает?
WinCoder вне форума Ответить с цитированием
Старый 26.01.2015, 14:53   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что вы друг с другом спорите? создайте прогу, откройте ее ассемблер и посмотрите.
В Д6-Д7 множества были битовыми масками. Уверен что и в современных делфи они такими и остались.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.01.2015, 14:58   #19
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Char для не юникодных, D7 например. AnsiChar для юникодных
Тогда как объяснить это?
Код:
procedure TForm1.FormCreate(Sender: TObject);
const
  a : set of widechar = ['а', 'б', 'в'];
var
  b: char;
begin
  b := 'и';
  if b in a then ShowMessage('ok');
end;
Юникод, WideChar, работает.
Цитата:
Что вы друг с другом спорите?
Мы тебе сильно этим помешали? Спорим и спорим. Хочется. Спор по теме, кстати.
WinCoder вне форума Ответить с цитированием
Старый 26.01.2015, 15:17   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
const
  a : set of widechar = ['а', 'б', 'в'];
Это нужно у разработчиков спросить почему такая запись допускается. На самом деле в делфи любых версий мощность множества не может превышать 256
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка строки galaxyblazer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 20 18.03.2012 18:25
проверка строки tinton Помощь студентам 6 09.11.2011 15:39
Проверка строки dosha Общие вопросы C/C++ 1 27.12.2010 23:46
проверка строки Артэс Общие вопросы C/C++ 13 21.01.2010 00:28
Проверка строки SL1CK Общие вопросы C/C++ 4 08.06.2009 18:41