IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с битами
sheka
сообщение 7.07.2011 14:07
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Хочется видите ли с битами работать. Но даже в тот же Longint они не влазят.
Вот такой маразм не прокатывает:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
p: pointer;
pSize: integer;
i: integer;

begin
pSize := SizeOf(longint)*8+1;
WriteLn(pSize);
GetMem(p,pSize);
FillChar(p^,pSize,0);
Integer(p^) := 4294967296;
for i := pSize-1 downto 0 do
Write((Integer(p^) shr i)and $1);
WriteLn;
FreeMem(p,pSize);
readln;
end.

Объявлять массив Байтов и делать перегрузку +- не интересно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
sheka
сообщение 8.07.2011 23:01
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Цитата
Не будет. Либо тебе очень повезло и ты натолкнулся на простое совпадение, либо результат будет, но неправильный. Массив Boolean-ов никогда не занимает в памяти места меньше, чем по 1 байту на значение...
Не ожидал. Совсем не ожидал. А почему Boolean занимает ВСЕГДА 1 байт? Зачем оно так?

Это АДА?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
sheka   Работа с битами   7.07.2011 14:07
IUnknown   Ну, с таким-то значением ничего перегружать не над...   7.07.2011 14:18
sheka   Ну 512бит это уже лучше, но все равно не много :) ...   7.07.2011 15:32
IUnknown   512 бит - это 64 байта, а тип Int64 - это 64 бита....   7.07.2011 16:14
sheka   Что-то я лишний раз на 8 умножил (логарифм от того...   7.07.2011 22:22
IUnknown   Не будет. Либо тебе очень повезло и ты натолкнулся...   8.07.2011 14:01
sheka   Не ожидал. Совсем не ожидал. А почему Boolean зани...   8.07.2011 23:01
Lapp   Не ожидал. Совсем не ожидал. А почему Boolean зани...   8.07.2011 23:29
sheka   Да это понятно, что sizeof все прекрасно выдает, т...   8.07.2011 23:38
IUnknown   Стоп... Похоже, FPC умеет-таки упаковывать биты (в...   8.07.2011 23:38
Lapp   Идеология кого?Программирования. Компьютера. Ну ...   8.07.2011 23:51
sheka   Стремный метод однако. Лучше ничего нет? Дык полу...   8.07.2011 23:59
Lapp   Дык получается, что первые 7 бит booleana - вечные...   9.07.2011 0:09
IUnknown   Кто тебе сказал, что Boolean - это только 0 и 1? Н...   9.07.2011 0:09
Lapp   Кроме прочего, если заводишь boolean переменную ди...   9.07.2011 0:15
sheka   Делфи на такую штуку иероглифы выводит. Не нравитс...   9.07.2011 0:18
Lapp   Ну как бы в Си такое же понятие True и False, и им...   9.07.2011 0:50
IUnknown   Я б не рекомендовал тебе заниматься подобными извр...   9.07.2011 12:56
sheka   Расскажите о перечислениях более подробно: их пре...   9.07.2011 21:42
IUnknown   Ты опять совершаешь ту же самую ошибку. Пойми, что...   9.07.2011 22:43


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 16.07.2025 23:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"