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

Вниз

перевод Integer в 4-ре char`а   Найти похожие ветки 

 
Неуловимый Джо   (2004-10-13 17:57) [0]

Народ, подскажите плиз, как перевести (разложить) integer на 4-ре байта и обратное преобразование


 
Cosinus ©   (2004-10-13 17:59) [1]

IntToHex + F1
Обратно
// Функция перевода (НЕХ-представление числа):string в Integer
// Пример: HexToInt("10":string)=16:integer
function HexToInt(Value:String):int64;
Var
  s:string;
begin
 result:=0;
 S:="$"+Value;
 Result:=StrToInt(s);
end;


 
WondeRu ©   (2004-10-13 18:03) [2]

i: Integer;
p : PChar;
begin
 CopyMemory(p, @i, 4);
 ch1 := Char(p[0]);
 ch2 := Char(p[1]);
 ch3 := Char(p[2]);
 ch4 := Char(p[3]);

.....
end;


 
Неуловимый Джо   (2004-10-13 18:04) [3]

сенка!


 
WondeRu ©   (2004-10-13 18:05) [4]

а вообще лучше стандартными операциями:

ch1 := Hi(HiWord(i));
ch2 := Lo(HiWord(i));
ch3 := Hi(LoWord(i));
ch4 := Lo(LoWord(i));


 
Неуловимый Джо   (2004-10-13 18:10) [5]

задача была без hi/lo, но фсе равно сенкс


 
Defunct ©   (2004-10-13 20:31) [6]

> как перевести (разложить) integer на 4-ре байта

Type TBytes = packed Record
      C4 : Byte;
      C3 : Byte;
      C2 : Byte;
      C1 : Byte;
    End;
       

I : Integer;

with TBytes(i) do
begin
 C4 := 0;
 C3 := 55;
 C2 := 0
 C1 := 55;
end;


 
ALEIIIKA   (2004-10-14 10:24) [7]

i := (Ord("c") shl 24)+//63
    (Ord("a") shl 16)+//61
    (Ord("m") shl 8)+// 6D
    Ord("k"); //6B
//i := 1667329387;
c1 := Chr((I shr 24) AND $FF);
c2 := Chr((I shr 16) AND $FF);
c3 := Chr((I shr 8) AND $FF);
c4 := Chr(I AND $FF);

Туда и обратно.


 
AlexKocharin ©   (2004-10-14 11:04) [8]

var a:record
case byte of
1:(int:integer);
2:(bytes:array[1..4] of byte);
3:(chars:array[1..4] of char);
end;

Записываешь integer в a.int - читаешь массив байт в a.bytes или a.chars (байты или символы соответственно);
Записываешь массив байт в a.bytes или a.chars - читаешь integer в a.int;


 
AlexKocharin ©   (2004-10-14 11:09) [9]

А лучше так:

var a:record
case byte of
1:(int:integer);
2:(bytes:array[1..sizeof(integer)] of byte);
3:(chars:array[1..sizeof(integer)] of char);
end;


Вместо integer теперь можно ставить все, что угодно.



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

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

Наверх





Память: 0.46 MB
Время: 0.054 c
1-1097649544
Asker
2004-10-13 10:39
2004.10.31
Участок формы в графический файл


1-1098148223
Simon
2004-10-19 05:10
2004.10.31
Прозрачная форма


1-1097766889
Beginner707
2004-10-14 19:14
2004.10.31
Paint on TPanel


14-1097345866
olookin
2004-10-09 22:17
2004.10.31
4-0


14-1097723617
BorisUK
2004-10-14 07:13
2004.10.31
Что это? Лохотронщики взялись за ebay или я чтото не понял...





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