polevoy_cpp_2012_spring_lecture_12
.pdfРабота с масками
•AND
–сброс битов по маске
•OR
–установка битов по маске
•XOR
–для инвертирования битов по маске
28.04.2012 |
cppNewb.ru |
21 |
Создание масок
•константы (литералы, макросы)
•сдвиги и др. операторы
пример:
const unsigned int m1(1 << 4);
unsigned int m2(0xFF0B1000);
28.04.2012 |
cppNewb.ru |
22 |
Логические операторы
•операнды – логические значения (сравнение с нулем)
•результат – true или false
•унарные
–NOT (НЕ)
•бинарные
–AND (И)
–OR (ИЛИ)
28.04.2012 |
cppNewb.ru |
23 |
Логическое НЕ (!)
• инверсия значения
пример:
if (!canMove)
{
//...
}
if (0 != canMove)
//...
28.04.2012 |
cppNewb.ru |
24 |
Логическое И (&&)
false && false == false false && true == false true && false == false true && true == true
• оптимизация вычислений
пример:
res = res && isGood();
28.04.2012 |
cppNewb.ru |
25 |
Логическое ИЛИ (||)
false || |
false |
== false |
|
false || |
true |
== true |
|
true |
|| |
false |
== true |
true |
|| |
true |
== true |
• оптимизация вычислений
пример:
res = res || needCheck();
28.04.2012 |
cppNewb.ru |
26 |
Параметры командной строки
•передаются операционной системой при запуске приложения
•для отладки могут устанавливаться в среде разработки
•включают имя самого приложения
int main(int argc, char* argv[])
28.04.2012 |
cppNewb.ru |
27 |
Пример использования параметров командной строки
int main(int argc, char* argv[])
{
if (3 < argc)
{
string pathIn(argv[1]); string pathOut(argv[2]);
...
}
...
28.04.2012 |
cppNewb.ru |
28 |
Как отлаживать использование параметров командной строки
• в настройках проекта
Command |
${TargetPath} |
Command Arguments |
параметры |
Working Directory |
${TargetDir} или ${ProjectDir} |
28.04.2012 |
cppNewb.ru |
29 |
Генерация псеводслучайных чисел (rand, srand)
int rand();
•генерация псевдослучайного числа в диапазоне от 0 до RAND_MAX.
void srand(unsigned int seed);
•инициализация генератора псевдослучайных чисел
28.04.2012 |
cppNewb.ru |
30 |