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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2011, 10:53   #1
kolob2000
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 23
Вопрос переменная, как набор битов.

Привет!
Подскажите каким образом можно в целочисленной переменной обращаться, как к двоичному числу, к каждому биту отдельно. Примерно так же, как к элементам массива.
Заранее спасибо.
kolob2000 вне форума Ответить с цитированием
Старый 09.04.2011, 12:04   #2
Napkin
Пользователь
 
Аватар для Napkin
 
Регистрация: 09.12.2009
Сообщений: 25
По умолчанию

http://www.google.ru/#sclient=psy&hl...abab7a0ca64023
Удел сильных - уделывать слабых
Napkin вне форума Ответить с цитированием
Старый 09.04.2011, 13:16   #3
kolob2000
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Napkin Посмотреть сообщение
Огромное спасибо конечно, но это мне всё известно
. Зато нашёл хорошую он-лайн библиотеку-http://sernam.ru/
А вообще, дело обстоит так: мне нужно объявить двойное слово и генерировать в нём в каждый нужный момент случайное значение. Но мне нужно не его десятичное представление, а его двоичная форма. Мне важен каждый бит. В каждый нужный мне момент мне нужен или ноль, или еденица по каждому биту. Нужно случайное количество этих самых значений.
kolob2000 вне форума Ответить с цитированием
Старый 09.04.2011, 13:34   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

установить бит #6 (считая от младших):

Код:
A |= (1 << 6);
сбросить бит #6 (считая от младших):

Код:
A &= ~(1 << 6);
проверить бит #6 (считая от младших):

Код:
bool bitSet = (0 != (A & (1 << 6)));
(6 выбрана для примера, всесто константы может быть переменная)
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 09.04.2011, 13:50   #5
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

наверно вам надо нечто похожее на это(рандомное заполнение каждого бита):
Код:
int dword=0;
int i=1;
do{
dword^=i&rand();
}while((i<<=1)<(1<<31));
ps код не проверял
ololo-schoolboy вне форума Ответить с цитированием
Старый 09.04.2011, 15:57   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

юнион из целого числа и структуры с битовыми полями по 1
p51x вне форума Ответить с цитированием
Старый 09.04.2011, 16:51   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
А вообще, дело обстоит так: мне нужно объявить двойное слово и генерировать в нём в каждый нужный момент случайное значение
r:=random($FFFFFFFF);
r:=(r shl 32) + random($FFFFFFFF);

r:=random($FFFF);
r:=(r shl 16) + random($FFFF);
r:=(r shl 16) + random($FFFF);
r:=(r shl 16) + random($FFFF);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использования текста как переменная dubailand Паскаль, Turbo Pascal, PascalABC.NET 5 06.02.2011 13:29
Значения поля как переменная DimOn4Ik БД в Delphi 12 07.05.2010 02:59
Как реализовать набор вкладок Intersap Компоненты Delphi 2 25.03.2010 21:32
Процедура, как переменная russian-stalker Общие вопросы Delphi 2 03.10.2009 18:01
Массив как структурная переменная mazak Общие вопросы C/C++ 8 15.07.2009 21:55