Главная страница
    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.038 c
1-1110435494
boalse
2005-03-10 09:18
2005.03.27
Массив больше 1 Мб???


14-1110366844
Сергей_С
2005-03-09 14:14
2005.03.27
Сведения об учетной записи для COM+ сервера периодически исчезают


1-1110882991
ksu
2005-03-15 13:36
2005.03.27
Мигающий текст в StringGrid


1-1110387927
Игнатенков Станислав
2005-03-09 20:05
2005.03.27
Типизированные файлы


1-1110444992
juice
2005-03-10 11:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский