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

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> битовое поле, битовое поле
сообщение
Сообщение #1


Бывалый
***

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

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


для управления программой которую мне нужно написать используется битовое поле в 32 бита тоесть программа смотрет какие биты выставлены и выполнять соответствующие действия.я понял как выставить и как убрать бит
 int ug=0x00000001;
ug|=0x00000004; //для выставления бита
ug&=`0x00000004;//для снятия бита

а вот как потом проанализировать ug и определить какие биты выставлены?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
для снятия бита
Это у тебя там "тильда" (~) должна быть, ты ее имел в виду?

Кстати, что именно ты хочешь знать, просто номера битов, которые выставлены, или проверить, выставлен ли какой-то конкретный? Если второе - то


if(ug & 0x0000004 == 0x0000004) {
cout << "бит установлен" << endl;
}

Можно проще: if(ug & 0x0000004) { ... }, тогда если результат не ноль - значит, if выполняется...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

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

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


Цитата(volvo @ 17.03.2008 22:27) *

Это у тебя там "тильда" (~) должна быть, ты ее имел в виду?

Кстати, что именно ты хочешь знать, просто номера битов, которые выставлены, или проверить, выставлен ли какой-то конкретный? Если второе - то


if(ug & 0x0000004 == 0x0000004) {
cout << "бит установлен" << endl;
}

Можно проще: if(ug & 0x0000004) { ... }, тогда если результат не ноль - значит, if выполняется...

да именно это я и хотел узнать спасибо.и еще вопрос по заданию нам надо написать 2 программы и оболочку которая обрабатывает командную строку и чтоб не запускать каждую прогу отдельно нужно создать bat файл раньше мне не пртходилось с ними работать так вот как спомощью этого файла записать аргументы в командную строку если я пишу
Код

/i-это какбы аргумент
generator.exe
то выводится сообщение что /i не является стандартной командой а программа generator нифига не считывает из командной строки хотя если я записываю аргументы через vs6 progect/settings.... все работает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Так и записываешь, как при запуске из консоли:
generator.exe /i
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

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

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


Цитата(volvo @ 17.03.2008 22:38) *

Так и записываешь, как при запуске из консоли:
generator.exe /i

спасибо! как я сразу не додумался)?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Бывалый
***

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

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


у меня возник еще вопрос.как обработать нажатие клавиши F1 у нее ведь расширенный код если просто getch() то результат 0 , как достать 2символ кода?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Этот вопрос не связан с битовыми полями, лучше бы ты новую тему открыл... А вообще - вот так:

int ch;
if(!(ch = getch()))
switch(ch = getch()) {
// здесь обрабатываешь расширенные клавиши
}
else
switch(ch) {
// здесь - обычные
}

 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

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

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


Цитата(volvo @ 18.03.2008 16:05) *

Этот вопрос не связан с битовыми полями, лучше бы ты новую тему открыл... А вообще - вот так:

int ch;
if(!(ch = getch()))
switch(ch = getch()) {
// здесь обрабатываешь расширенные клавиши
}
else
switch(ch) {
// здесь - обычные
}



да я понимаю что не связан)я подумал что он слишком мелкий чтоб тему из за него открывать.спасибо!

Сообщение отредактировано: blackhard -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 24.11.2020 0:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name