Главная страница
    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.46 MB
Время: 0.044 c
4-1108403182
a125
2005-02-14 20:46
2005.03.27
преобразование string -> chr


1-1110525335
seregka
2005-03-11 10:15
2005.03.27
Добавление информации в exe


9-1104873227
Tankist
2005-01-05 00:13
2005.03.27
Как менять гамму в Direct3D


6-1106571984
Zloy
2005-01-24 16:06
2005.03.27
как создать подлючение к интернету через прокси


1-1110633189
просто кодер
2005-03-12 16:13
2005.03.27
TChart





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский