Главная страница
    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.037 c
6-1093336037
Дмитрий Ботвин
2004-08-24 12:27
2004.10.31
Закладка FastNet


6-1090995501
DemonRus
2004-07-28 10:18
2004.10.31
Загрузка файл формата .jpg с сайта.


3-1096539664
Облава
2004-09-30 14:21
2004.10.31
Заломать исходник?


1-1097902678
Dr. Genius
2004-10-16 08:57
2004.10.31
... is specific to a platform


1-1097604924
Васёк
2004-10-12 22:15
2004.10.31
Проверка при выходе из программы





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