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

Вниз

Преобразование 16->10   Найти похожие ветки 

 
zeppelin   (2004-08-04 19:59) [0]

Как преобразовать 16-е число в 10-е?


 
Anatoly Podgoretsky ©   (2004-08-04 20:10) [1]

StrToInt затем IntToStr


 
VMcL ©   (2004-08-04 20:10) [2]

>>zeppelin  (04.08.04 19:59)

Простой способ: StrToInt("$" + 7F);


 
Fay ©   (2004-08-04 20:21) [3]

2 zeppelin   (04.08.04 19:59)

Что именно нужно?! $10 -> $16?
Уточни вопрос.


 
zeppelin   (2004-08-04 20:25) [4]

Пример
4063204B32816C7F = 153.009


 
begin...end ©   (2004-08-04 20:27) [5]


> 4063204B32816C7F = 153.009

Э-э... Это как?


 
zeppelin   (2004-08-04 20:29) [6]

Есть число представленное в шестнадцатиричной форме,
его необходимо преобразовать число типа float.


 
VMcL ©   (2004-08-04 20:50) [7]

>>zeppelin  (04.08.04 20:25) [4]
>>zeppelin  (04.08.04 20:29) [6]

Для этого нужно знать, в каком формате число записано.


 
Fay ©   (2004-08-04 20:50) [8]

А это (4063204B32816C7F) число в каком виде есть?


 
zeppelin   (2004-08-04 20:56) [9]

Да число представлено в таком виде.


 
Fay ©   (2004-08-04 20:59) [10]

Ладно. А чем тогда "такой" вид отличается от вида, в котором float?


 
zeppelin   (2004-08-04 21:01) [11]

4063204B32816C7F это 153.009


 
Fay ©   (2004-08-04 21:04) [12]

тогда "="


 
Тестировщица ©   (2004-08-04 21:30) [13]

Примерно так...
//var
//  j:int64=$4063204B32816C7F;
procedure TForm1.Button1Click(Sender: TObject);
var
   p:Pointer;
   pi:PInt64;
   pd:PDouble;
begin
   pi:=@j;
   p:=pi;
   pd:=p;
   Label1.Caption:=FloatToStr(pd^);
end;


 
Fay ©   (2004-08-04 21:55) [14]

2 Тестировщица ©   (04.08.04 21:30) [13]
Дя-а-а. 8)

Label1.Caption:=FloatToStr(PDouble(@j)^);


 
Тестировщица ©   (2004-08-04 21:56) [15]

Зато прозрачно - понятно "на пальцах" - что именно делается


 
Fay ©   (2004-08-04 21:57) [16]

>> Зато прозрачно - понятно "на пальцах" - что именно делается
М.б. Но время тратится на попытку понимания целесообразности такого решения. Мне потребовалось больше минуты. 8)


 
SelloutS   (2004-08-04 22:36) [17]

function HexStrToInt(s: String): Integer;
 function HDigital(C: Char): Byte;
 begin
   case c of
     "0".."9": Result := ord(C) - ord("0");
     "A".."F": Result := ord(C) - ord("A") + 10;
   else
     raise EConvertError.Create("Недопустимое представление шестнадцатеричного числа");
   end;
 end;
var
 k: Integer;
begin
 Result := 0;
 for k := 1 to Length(S) do
   Result := Result*16 + HDigital(S[k])
end;


 
Fay ©   (2004-08-04 22:46) [18]

2 SelloutS   (04.08.04 22:36) [17]
"0a"


 
SelloutS   (2004-08-05 00:47) [19]

ну 0A = 10 =)


 
начинающий   (2004-08-05 15:12) [20]

406-3FF=7
2Y7=128

4063204B32816C7F округлим до 4063204B32800000

3204 B328 = 0011001000000100 1011001100101000

128*(1/2Y0+1/2Y3+1/2Y4+1/2Y7+1/2Y17+1/2Y19+1/2Y20+1/2Y23+1/2Y24+1/2Y27+1/2Y29)=
153,0013668537139892578125

Кстати, у меня Дельфи показывает несколько другое значение 153,009:
40632049BA5E353F округлим до 40632049BA500000
3204 9BA5 = 0011001000000100 1001101110100101
128*(1/2Y0+1/2Y3+1/2Y4+1/2Y7+1/2Y14+1/2Y17+1/2Y20+1/2Y21+1/2Y23+1/2Y24+1/2Y25+1/2Y27+1/2Y30+1/2Y32)=
153,0089999735355377197265625
Видно, что даже отбросив 20 бит, результат всё равно довольно точный.


 
Kergma   (2004-08-05 15:49) [21]


const
j:int64 = $4063204B32816C7F;
var
i : int64;
k : Double absolute i;
begin
 i := j;
 memo1.Lines.Add( floattostr(k));
end;


 
Kergma   (2004-08-05 15:51) [22]

153,009179356366



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

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

Наверх





Память: 0.49 MB
Время: 0.042 c
3-1090842348
-=VaaL=-
2004-07-26 15:45
2004.08.22
Access и прога на CD


1-1092137340
Zloy_dima
2004-08-10 15:29
2004.08.22
GetTickCount


1-1091691282
СержК
2004-08-05 11:34
2004.08.22
Можно ли вставить в свой проект фрагмент кода на VB


1-1091963555
GuAV
2004-08-08 15:12
2004.08.22
Хранение параметров приложения


1-1092140517
vakir77
2004-08-10 16:21
2004.08.22
RichEdit





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