Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

Поменять байты местами   Найти похожие ветки 

 
secher   (2005-03-14 12:41) [0]

подскажите плиз как поменять местами байты в переменной Word
например 0100 сделать 0001


 
begin...end ©   (2005-03-14 12:42) [1]

Например, с помощью функции Swap.


 
P.N.P. ©   (2005-03-14 12:47) [2]

Если как в примере, то 4 shr 2,
см. хелп - Logical operators


 
begin...end ©   (2005-03-14 12:57) [3]

> P.N.P. ©   (14.03.05 12:47) [2]

Кто ж его знает - может быть, он написал в шестнадцатеричной системе :-)

var
 W: Word;
begin
 W := ...;
 W := ((W and $FF) shl 8) or ((W and $FF00) shr 8)
end.


 
TUser ©   (2005-03-14 13:47) [4]

второй and лишний


 
Юрий Зотов ©   (2005-03-14 14:07) [5]

Первый тоже...
:о)


 
begin...end ©   (2005-03-14 16:29) [6]

Согласен. Приношу извинения.


 
stakan ©   (2005-03-14 17:43) [7]


var
 L: Byte;  
 H: Byte;
 R: Word;
begin
 R := 0;
 L := Lo(Исходное значение);
 H := Hi(Исходное значение);
 R := L;
 R := R SHL 8;
 R := R + H;   //результат

Код несколько избыточен, для наглядности


 
Юрий К   (2005-03-14 19:52) [8]

w: Word;
pch: PChar;
ch: Char;

pch: = PCHAR(@w);
ch := pch[0];
pch[0] := pch[1];
pch[1]: = ch;


 
palva ©   (2005-03-14 20:09) [9]

Где-то на этом форуме уже видел такую функцию:

function SwapW(i: Word): Word;
asm
 XCHG al,ah
end;

Можно и в двойном слове байты в противоположном порядке разместить:

function SwapL(i: LongWord): LongWord;
asm
 BSWAP eax
end;


 
default ©   (2005-03-14 20:46) [10]

можно ещё через ROR[ROL], три XOR"а, но быстрей всего через XCHG


 
begin...end ©   (2005-03-14 20:48) [11]

Ещё с CopyMemory можно


 
secher   (2005-03-15 04:16) [12]

Sorry.. Вношу поправку данные в шестнадцатеричном виде



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.03 c
1-1110574325
andruxin
2005-03-11 23:52
2005.03.27
Вопрос по движку грамматики MS Word XP, нужно описание функций


1-1110556503
redlord
2005-03-11 18:55
2005.03.27
Socket : TCustomWinSocket в качестве владельца


1-1110455964
Антон
2005-03-10 14:59
2005.03.27
Динамическое создание пунктов меню


3-1109253535
Alex_V
2005-02-24 16:58
2005.03.27
Доступ к базам Clarion


8-1103024819
Ego
2004-12-14 14:46
2005.03.27
Как получить значение цвета?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский