Упражнения
1. Вот правильное решение:
int Result = ((number « 1) + 5) « 1; // теперь вполне очевидно
Результат содержит значение переменной num ber, сдвинутое на 7 битов влево, по скольку приоритет оператора + выше, чем оператора « .
Ниже приведена программа, которая получает два логических значения, введенных пользователем, и демонстрирует результат использования побитовых операторов на них.
#include using namespace std; int main()
{
cout « "Enter a boolean value true(l) or false (0): "; bool Valuel = false;
cin » Valuel;
cout « "Enter another boolean value true(l) or false (0): "; bool Value2 = false;
cin » Value2;
cout
|
«
|
"Result of bitwise
|
operators on these operands: " « endl;
|
cout
|
«
|
"Bitwise AND: " «
|
(Valuel
|
& Value2)
|
« endl;
|
cout
|
«
|
"Bitwise OR: " «
|
(Valuel
|
I Value2)
|
<< endl;
|
cout « "Bitwise XOR: " « (Valuel л Value2) « endl;
return 0;
Результат
Enter a boolean value true(l) or false(0): 1
Enter another boolean value true(l) or false (0): 0
Result of bitwise operators on these operands:
Bitwise AND: 0
Bitwise OR: 1
Bitwise XOR: 1
Ответы к занятию 6
Контрольные вопросы
Отступы используются не для компилятора, а ради других программистов (людей), которые впоследствии будут читать или поддерживать ваш код.
Его следует избегать, чтобы ваш код не стал запутанным и дорогим в обслуживании.
См. код в решении упражнения 1, где используется оператор декремента.
Поскольку условие продолжения цикла f o r не удовлетворяется, цикл завершается, не выполнившись ни разу, поэтому оператор c o u t также ни разу не будет выполнен.
Упражнения
Необходимо помнить, что индексы массива отсчитываются от нуля, а индекс по следнего элемента на единицу меньше его длины:
#include using namespace std; int main()
{
const int ARRAY_LEN = 5;
int MyNumbers[ARRAY_LEN]= {-55, 45, 9889, 0, 45};
for (int nlndex = ARRAY_LEN - 1; nlndex >= 0; -nlndex)
cout«"MyNumbers [" « nlndex
"] = "«MyNumbers [nlndex] «endl;
return 0;
Результат
MyNumbers[4] =45
MyNumbers[3] = 0
MyNumbers[2] = 9889
MyNumbers[1] =45
MyNumbers[0] = -55
ПРИЛОЖЕНИЕ Г. Ответы
Вложенный цикл, эквивалентный использованному в листинге 6.13, но добавляю щий элементы в два массива в обратном порядке, выглядит так:
#include using namespace std; int main()
{
const int ARRAY1_LEN = 3; const int ARRAY2_LEN = 2;
int Mylntsl[ARRAY1_LEN] = {35, -3, 0};
int Mylnts2[ARRAY2_LEN] = {20, -1};
cout « "Adding each int in Mylntsl by each in Mylnts2:" « endl;
for (int ArraylIndex=ARRAYl_LEN-l;ArraylIndex>=0;— ArraylIndex)
for(int Array2Index=ARRAY2_LEN-l;Array2Index>=0;— Array2Index)
cout«MyIntsl [Arrayllndex]«" + "«Mylnts2 [Array2Index] \
" = " « Mylntsl[Arrayllndex] + Mylnts2[Array2Index]
endl;
Do'stlaringiz bilan baham: |