ВУЗ:
Составители:
Рубрика:
44
x y x xor y
0 0 0
0 1 1
1 0 1
1 1 0
С использованием двоичного представления чисел и операции xor
поставленную задачу решает приведенная ниже последовательность
операторов.
Пусть a=5 в двоичном представлении 0101, b=11 в двоичном
представлении 1011.
a a xor b xor:=
0101
1011
1110
Результат помещаем в а.
b a xor b xor: =
1110
1011
0101
Результат помещаем в b.
a a xor b xor:=
1110
0101
1011
Результат помещаем в а.
Окончательно получаем a=1011, b=0101.
Из трех рассмотренных алгоритмов два последних не используют
дополнительной переменной, причем в последнем - только одна операция.
Однако последний алгоритм можно применить к двоичным данным (любым,
хранящимся в виде двоичных последовательностей), второй - только к
числовым. Первый алгоритм имеет универсальный характер: с его помощью
можно
поменять местами не только числа, но и различные предметы: мел и
тряпку, пару бутылок или людей, записи на магнитофонных кассетах и т.д. К
тому же этот алгоритм представляется наиболее наглядным. Приведем запись
этого алгоритма на Паскале:
program obmen;
{ поменять местами значения двух переменных }
var a,b:real; { исходные данные и результат }
r:real; { вспомогательная переменная }
begin write('Введите
два числа ');
readln(a,b);
r:=a; { 1 }
a:=b; { 2 }
b:=r; { 3 }
writeln('результат ',a,' ',b)
end.
44
x y x xor y
0 0 0
0 1 1
1 0 1
1 1 0
С использованием двоичного представления чисел и операции xor
поставленную задачу решает приведенная ниже последовательность
операторов.
Пусть a=5 в двоичном представлении 0101, b=11 в двоичном
представлении 1011.
0101
a: = a xor b xor 1011
1110
Результат помещаем в а.
1110
b: = a xor b xor 1011
0101
Результат помещаем в b.
1110
a: = a xor b xor 0101
1011
Результат помещаем в а.
Окончательно получаем a=1011, b=0101.
Из трех рассмотренных алгоритмов два последних не используют
дополнительной переменной, причем в последнем - только одна операция.
Однако последний алгоритм можно применить к двоичным данным (любым,
хранящимся в виде двоичных последовательностей), второй - только к
числовым. Первый алгоритм имеет универсальный характер: с его помощью
можно поменять местами не только числа, но и различные предметы: мел и
тряпку, пару бутылок или людей, записи на магнитофонных кассетах и т.д. К
тому же этот алгоритм представляется наиболее наглядным. Приведем запись
этого алгоритма на Паскале:
program obmen;
{ поменять местами значения двух переменных }
var a,b:real; { исходные данные и результат }
r:real; { вспомогательная переменная }
begin write('Введите два числа ');
readln(a,b);
r:=a; { 1 }
a:=b; { 2 }
b:=r; { 3 }
writeln('результат ',a,' ',b)
end.
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »
