Форум: "Основная";
Текущий архив: 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.037 c