php发送十六进制数据 php 16进制
PHP 中如何进行 长16进制的字符串运算?
大整数需要用GMP模块,或者自己算法好可以写简单的累加,
我们提供的服务有:成都做网站、网站设计、微信公众号开发、网站优化、网站认证、安康ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的安康网站制作公司
在php.ini中开启模块extension=php_gmp.dll
?php
$n = gmp_init('58915248108339c6ddca5553e9f266124e7af7c8',16); //16进制输入
$n = gmp_add($n,1); //加1
echo gmp_strval($n,16).'br/'; //16进制显示
$n = gmp_add($n,13869656); //加法
echo gmp_strval($n,16).'br/'; //16进制显示
输出
58915248108339c6ddca5553e9f266124e7af7c9
58915248108339c6ddca5553e9f266124f4e9a21
php 如何将 16进制字符串转为16进制字符数组 或者将 2进制字符串转为16进制字符数组
echo ord(pack("H*", 'F'));
这个方法可以把hex转成bin数据直接写文件什么的都可以了
我不确定你要的答案是什么, 不过php中并不存在字符数组这个c的概念
至于bin转hex, 直接用bin2hex()即可, 不过由于php没有字符数组, 余下的如果不是你要的, 再转其它吧
php中字符本身就可以使用$var[x]的形式直接调用单个字符, 如果楼主想问的不是这些, 欢迎追问
怎样在PHP中把16进制HEX数据转换为2进制数据呢?
十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍2种转换方法:
1.hex2bin函数可以将十六进制字符串转换为二进制字符串,详细用法如下:
hex2bin — 转换十六进制字符串为二进制字符串
string hex2bin(string $data)
转换十六进制字符串为二进制字符串。
参数:
data:十六进制表示的数据
返回值:
返回给定数据的二进制表示 或者在失败时返回 FALSE。
异常:
如果输入的十六进制字符串是奇数长数或者无效的十六进制字符串将会抛出E_WARNING 级别的错误。
示例:
$hex = hex2bin("6578616d706c65206865782064617461");
echo $hex;//example hex data(其中16进制代表的是ascii码)
2.base_convert是真正意义上的进制转换函数
base_convert — 在任意进制之间转换数字
string base_convert( string $number, int $frombase, int $tobase)
返回一字符串,包含 number以 tobase 进制的表示。number 本身的进制由frombase指定。frombase 和 tobase 都只能在2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。
参数:
number:要转换的数字
frombase:原始进制
tobase:转换后的进制
示例:
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);//101000110111001100110100
如何发送16进制数据,而不使用字符发送
val = [170 180 val 85];
fwrite(scom, val, 'uint8', 'async'); %数据写入串口 PC机上位机发送 这是当年做智能车时的Matlab_GUI 串口上位机 自己help fwrite看下就好 我也忘了这什么意思了 这是当时一段的代码 单片机接收的就是16进制数 数值为val 中的4个数
PC机接收单片机传来数据:
n_bytes = get(obj,'BytesAvailable'); %% 数据总数量
if n_bytes %% 有效读取 防止Matlab延迟进入或误进入
Data = fread(obj, n_bytes, 'uchar')'; %% 读走数据并存入Data中 直接为十进制数值形式
希望能帮到你
网站名称:php发送十六进制数据 php 16进制
本文路径:http://ybzwz.com/article/dogscsg.html