首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将十六进制字符串(或二进制数)转换为有符号的短?(PHP)

如何将十六进制字符串(或二进制数)转换为有符号的短?(PHP)
EN

Stack Overflow用户
提问于 2018-09-03 05:56:05
回答 1查看 0关注 0票数 0

我正在尝试将16bitPHP中的十六进制字符串(= signed signed)转换为带符号的十进制数。

(如:0xFEF5 - > -267)(如果需要转换二进制,0xFEF5 - > 1111 1110 1111 0101 - > -267)

我创立packunpack运作。然后,我写了一些代码,但它是分开的作品。

$bin = hex2bin('0020'); //0020 -> 32(dec) 0000 0000 0010 0000(bin)
$res = unpack("c2char", $bin);
//-> $res = ['char1':0,'char2':32] it works!

$bin = hex2bin('FFE3'); //FFE3 -> -29(dec) 1111 1111 1110 0011(bin)
$res = unpack("c2char", $bin);
//-> $res = ['char1':-1, 'char2':-29] it works!

但是当因为16位数据设置s参数时unpack,它不起作用。

$bin = hex2bin('0020');
$res = unpack("s*short", $bin);
//-> $res = ['short1': 8192] //not works

$bin = hex2bin('FFE3');
$res = unpack('s*short", $bin);
//-> $res = ['short1': -7169] //not works...

如果有其他方法十六进制到十进制带符号而不使用unpack,则可以。我没有使用过的痴迷unpack。或者,如果有其他方法二进制到带符号的十进制,也可以。

我在google上花了一段时间,但我找不到有效的方法来解决。

谁能帮我?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-09-03 15:07:41

您是否尝试过php手册中的hexdec功能? http://php.net/manual/en/function.hexdec.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档