本篇章节讲解PHP实现十进制、二进制、八进制和十六进制转换相关函数用法。分享给大家供大家参考,具体如下:
1.二进制:
1.1.二进制转十进制:
函数:bindec(string $binary_string)
@
函数说明:
bindec() 将一个二进制数转换成Integer类型或者出于大小的需要,转换为float类型。
bindec() 将所有的$binary_string值解释为无符号整数。这是因为bindec()函数将其最高有效位视为数量级而非符号位。【即最高位0或1并不被bindec()表示为+或-而是按值来表示1就是1,0就是0】
注意:参数必须为字符串,使用其他的数据类型会导致不可预知的结果。
范例:
以上程序语句会依次输出:18,6,15
1.2.二进制转十六进制
函数:bin2hex(string $str)
@
函数说明:
bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。
bin2hex() 函数转换使用字节方式,高四位字优先。
范例:
(1)bin2hex() 转换‘chengdu'为十六进制值:
以上程序语句会输出:6368656e676475
(2)把一个字符串值从二进制转换为十六进制,再转换回去:
";
echo pack("H*",bin2hex($str)) . " ";
以上程序语句依次输出:6368656e676475,chengdu
2.八进制:
2.1.八进制转十进制:
函数:octdec(string $octal_string)
@
函数说明:
octdec() 可以处理Integer大数字,但在这种情况下它会返回float类型。
范例:
以上程序语句会输出:8,45
3.十进制:
3.1.十进制转二进制:
函数:decbin(int $number)
@
函数说明:
decbin() 函数所能转换的最大十进制数值为4294967295,其结果为 32 个 1 的字符串。
范例:
以上程序语句会输出:1010,110010
3.2.十进制转八进制:
函数:decoct(int $number)
@
函数说明:
decoct() 函数所能转换的最大十进制数数值为4294967295,其结果为 "37777777777"。
范例:
以上程序语句会依次输出:12,62
3.3.十进制转十六进制:
函数:dechex(int $number)
@
函数说明:
dechex() 函数所能转换的十进制的最大数值是:PHP_INT_MAX*2 +/- 1,在32位系统上是十进制的4294967295,其dechex() 的结果为ffffffff。
注意:PHP的Integer类型是有符号的,但是dechex()只能处理无符号整数,负整数会以无符号来处理。
范例:
以上程序语句会依次输出:a,3a
4.1.十六进制转二进制:
函数:hex2bin(string $data); 转换十六进制字符串为二进制字符串
@
函数说明:
如果输入的十六进制字符串是奇数长度或者是无效的十六进制字符串,则会抛出一个E_WARNING级别的错误。
范例:
以上程序语句会输出:cheng du
4.2十六进制转十进制:
函数:hexdec(string $hex_string); 转换十六进制字符串为二进制字符串
@
函数说明:
hexdec() 会忽略它遇到的任意非十六进制的字符。
范例:
5.任意进制转换的base_convert() 函数:
函数:base_convert(string $number,int $frombase,int $tobase)
@
函数说明:
注意:由于使用内部的 "double" 或 "float" 类型,base_convert()的操作可能会导致大数值中的精度丢失。
范例:
PS:这里再为大家推荐几款计算与转换工具供大家参考使用:
在线任意进制转换工具:
科学计算器在线使用_高级计算器在线计算:
在线计算器_标准计算器:
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|