如:010000001001111011110000
转换成1980
转换成1980
解决方案 »
- 如何遍历webbrowser 里的各个元素,比如 listbox text等类似的东西.
- 一个问题解决了,继续提问:远程链接SQL数据库的时候,提示我:无法打开登陆"***"中请求的数据库,登陆失败
- [救助]如何在Edit中显示WebBrowser1的指定text文本!!!
- 有谁知道Win2003/WinXP启动画面的那种进度条那种控件包里有?
- 关于检测系统中安装的多台打印机当前状态是否为可用的问题!!!!~~~~~~~~~~~~~~~在线等~!~!!!!!!
- SQLSERVER 2000 存储过程为何出错??
- 快来拿分啦! 怎么设置 ListView 内 Item 之间的间隔宽度和高度。
- vc和delphi高手请进!古怪的问提!
- 在數據模組里,ADOQuery的BeforPost事件中只有TDataset參數,能判斷當前記錄某字段缺少填寫嗎?
- 我的excel中的数据导入进access再转换成interbase的数据库,进行控制?
- 采购收货单用什么方法实现打印最好?
- 取DBGrideh统计值的问题
三个Byte,双精度是四个字节哈
有什么规律吗?手工怎么转
010000001001111011110000 这个转出来是 409EF0然后再将409EF0放到Double里,出来就是1980了00 00 00 00 00 F0 9E 40 = 1980
pos----0--------1--------2--------3--------4--------5--------6--------7 参考如下代码:var
D: Double;
I: Integer;
S: string;
vByte, vBit: Integer;
begin
S := '010000001001111011110000';
D := 0;
vByte := 7; // 字节从一开始
vBit := 7;
for I := 1 to Length(S) do
begin
if S[I] <> '0' then
Byte(PChar(@D)[vByte]) := Byte(PChar(@D)[vByte]) or (1 shl vBit);
Dec(vBit);
if vBit < 0 then
begin
vBit := 7;
Dec(vByte);
if vByte < 0 then Break;
end;
end;
Caption := FloatToStr(D);
end;