Главная страница
    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.033 c
14-1091616142
Bless
2004-08-04 14:42
2004.08.22
Зачем нужен фаервол?


4-1089359467
Thick
2004-07-09 11:51
2004.08.22
Отслеживание модулей


10-1025240895
nikols
2002-06-28 09:08
2004.08.22
Разные обьектные ссылки C++ и Java.


1-1091948374
gs
2004-08-08 10:59
2004.08.22
FAST REPORT правка полей пользователем (дизайнер)


14-1091533035
}|{yk
2004-08-03 15:37
2004.08.22
4 уровневая архитектура???





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