• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php 中这个用法的浮点运算的函数是什么

php 搞代码 3年前 (2022-01-23) 10次浏览 已收录 0个评论
文章目录[隐藏]

php 中这个用法的浮点运算的函数是什么

请先看看百度百科里的浮点运算例子

http://wenku.baidu.com/view/9ba120a108a1284ac85043d8.html?re=view

也就是把 十六进制的 42C88000
使用IEEE754标准的32位浮点数格式 算出来结果等于 100.25

把十六进制的C1C90000 算出是 -25.125

有没有现成的函数?

帮我写个例子, 万分感激

谢谢

回复讨论(解决方案)

  function hexToDecFloat($strHex) {	$v = hexdec($strHex);	$x = ($v & ((1 << 23) - 1)) + (1 <> 31 | 1);	$exp = ($v >> 23 & 0xFF) - 127;	return $x * pow(2, $exp - 23);}$a='42C88000 ';echo hexToDecFloat($a); 

等于100.25

$s = '42C88000';echo current(unpack('f', pack('V', hexdec($s))));

100.25

$s = 'C1C90000';echo cu<strong>*本文来@源gao@daima#com搞(%代@#码@网2</strong><pre>搞代gaodaima码

rrent(unpack(‘f’, pack(‘V’, hexdec($s))));-25.125

也可以

$s = 'C1C90000';echo current(unpack('f', pack('H*', join('', array_reverse(str_split($s, 2))))));

-25.125

#1 的代码只对正数有效

$a = 'C1C90000';echo hexToDecFloat($a);

-6.875
有待完善

谢谢版主大人的帮助.


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php 中这个用法的浮点运算的函数是什么

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址