Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > Algorithms
Register

Reply
 
LinkBack Thread Tools
Old 08.08.2004, 17:06   #1
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default Замена значений двух чисел

Если значения переменных уже лежат в регистрах, то эффективно обменять их можно вот так:

a xor= b
b xor= a
a xor= b

xor= по аналогии с операциями с присваиванием в С, такие как |=, += и т.д. Т.е. значение в 'а' xor-ится значением из 'b' и остаётся в 'а' и т.д.
Всего три такта и без использования дополнительного регистра/памяти.
Reply With Quote
Old 09.08.2004, 07:36   #2
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

Технология известна В молодости на ассемблере так писал.
xor ax, bx
xor bx, ax
xor ax, bx
Reply With Quote
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 03:58.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.