DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lorangeve
今日帖子: 41
在线用户: 25
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 cmp123 (cmp123) ★☆☆☆☆ -
普通会员
2021/4/13 9:08:04
标题:
请问怎样将2个字的16进制字符串转为浮点数 浏览:1904
加入我的收藏
楼主: 我在网上找到函数,但windows可以,但放安卓就不行了
----------------------------------------------
-
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2021/4/13 9:28:12
1楼: 看看你的
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 cmp123 (cmp123) ★☆☆☆☆ -
普通会员
2021/4/13 9:34:37
2楼: function ReverseString(const AText: string): string;
var
  I: Integer;
  P: PChar;
begin
  SetLength(Result, Length(AText));
  P := PChar(Result);
  for I := Length(AText) downto 1 do
  begin
    P^ := AText[I];
    Inc(P);
  end;
end;
//*)

function HexToStr(mHex: string): string;
var
  I: Integer;
begin
  Result := '';
  for I := 1 to Length(mHex) div 2 do
    Result := Result + Chr(StrToIntDef('$' + Copy(mHex, I * 2 - 1, 2), 0));
end; { HexToStr }

function HexToSingle(mHex: string): Single;
var
  S: string;
begin
  S := ReverseString(HexToStr(mHex));
  Move(S[1], Result, 4);
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
label134.text:= FormatFloat('#.00', HexToSingle('4085C28F'));
end;
----------------------------------------------
-
作者:
男 cmp123 (cmp123) ★☆☆☆☆ -
普通会员
2021/4/13 9:35:49
3楼: 在windows可以得出4.18,但放安卓就显示 .00
----------------------------------------------
-
作者:
男 cmp123 (cmp123) ★☆☆☆☆ -
普通会员
2021/4/13 9:38:05
4楼: win是用2007,安卓用xe
----------------------------------------------
-
作者:
男 kenliaoliao (ben) ★☆☆☆☆ -
普通会员
2021/4/13 10:04:50
5楼: 安卓是用JString不是用String
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2021/4/13 10:18:28
5楼: 很明显的
1:2007的string是ansistring,而xe的string是unicodestring。内存布局完全不同。
2:移动平台的string下标从0开始,而传统windows平台还是从1开始。

你这段代码就这么点逻辑,自己整理一下就是了
----------------------------------------------
--
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2021/4/13 10:39:25
6楼: string -> AnsiString
PChar  -> PAnsiChar
----------------------------------------------
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2021/4/13 12:07:48
7楼: 安卓下不是utf8?
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2021/4/13 12:55:00
8楼: val := ('$'+str).toDouble;
----------------------------------------------
-
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2021/4/13 13:25:06
8楼: function HexToSingleA(const hex: string): single;
var
  i : Integer;
  FloatValue: Single absolute i;
begin
  i := StrToInt('$' + hex);
  Result := FloatValue;
end;

//使用
Edit2.Text := FormatFloat('#.00', HexToSingleA('4085C28F'));

多说一句:System.StrUtils 有 ReverseString() 函数
此帖子包含附件:
JPEG 图像
大小:30.4K
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 cmp123 (cmp123) ★☆☆☆☆ -
普通会员
2021/4/13 15:32:27
9楼: 谢谢各位!
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2021/4/13 20:21:30
10楼: function HexToSingle(Hex: String): Single;
begin
  HexToBin(PChar(Hex), @Result, Sizeof(Result));
end;

function HexToDouble(Hex: String): Double;
begin
  HexToBin(PChar(Hex), @Result, Sizeof(Result));
end;
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行121.0938毫秒 RSS