当前位置:首页 » 编程语言 » php转2进制

php转2进制

发布时间: 2022-07-27 14:24:26

php 怎么把字符串转化为二进制流

header("Content-type: text/html; charset=utf-8");
/**
* 将字符串转换成二进制
* @param type $str
* @return type
*/
function StrToBin($str){
//1.列出每个字符
$arr = preg_split('/(?
//2.unpack字符
foreach($arr as &$v){
$temp = unpack('H*', $v); $v = base_convert($temp[1], 16, 2);
unset($temp);
}
return join(' ',$arr);
}
/**
* 讲二进制转换成字符串
* @par

⑵ PHP函数怎么把十进制转换为二进制

PHP decbin函数的作用是把十进制转换为二进制。

用法:

参数 描述

dec_number 必需。规定要转换的十进制数。

示例:

<?php
echodecbin("3");
echodecbin("1");
echodecbin("1587");
echodecbin("7");
?>

输出:

11
1
11000110011
111

⑶ php如何让变量里的值为二进制,我转换了但是一运算就变成十进制了,右移>>之后就变成十进制了

无论什么语言中的位运算符都是按照计算机内的二进制而言的。
所以在人为计算的时候要将十进制的数字转化为二进制的数字运算后计算,再转回十进制即是答案。

我们来举个简单的例子吧。

2 & 1 = 0
其运算过程为(这后面的都是二进制) 10 & 01,第一位1和0求与是0,第二位0和1求与为0,结果是00那答案就是0
来个复杂点的。
10 & 11 = 10;
换成二进制 1010 & 1011 = 1010 答案还是10;

所有的为运算符都是基于二进制来产生的。所以在&(与)、|(或)、^(异或)这三个预算中,要将两个或者更多运算数据转化为二进制数字,逐位进行运算。
~(取反)运算则更简单,转化为二进制以后0则写为1,1则写为0,然后再转回十进制就OK

最后来说说<<(进位)与>>(退位)。同样,位运算也是基于二进制的。将运算符前的值转化为二进制,运算符后的数可以还保留十进制。然后看作小数点位置不变,然所有数字(包括前后有无限个0),向左(进位)或向右(退位)移动N个数位,N则是运算符右边的数字。

举个例子 10<< 3 二进制转化1010 << 3
这个可以看作1010.000 << 3 然后保持小数点位置不变,所有数字整体向左位移3位。
结果就是1010000,转回十进制80。
对于进位而言,每进一位相当于乘2,每退一位相当于除2。

有问题追问

⑷ php中如何将图片转成二进制呢

安卓苹果的开发都可以支持类似windows的socket io 库吧?

一般情况下,一个安卓应用 常用到的绝大部分图片是存储在手机端的,只有少量的必须获取的才会下载,下载一般也是 net io

⑸ PHP中怎么以二进制形式表示数字

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php。

⑹ php怎样将二进制流存到文件中

整形转化成2二进制可以用base_convert:

$str=0x8000;

echo$str2=base_convert($str,16,2);
echo'<br>';
echobase_convert($str2,2,16);
[code]

字符串文件等可以考虑用pack和unpack转化成二进制

[code=PHP]
$file1='F:/46.gif';//随便拷一个图片作为测试用
$file2='F:/test.txt';//生成的二进制流保存在这个文件里
$file3='F:/47.gif';//由二进制流还原成的文件

$size=filesize($file1);

echo'文件大小为:'.$size;
echo" <br>转化为二进制...";

$content=file_get_contents($file1);
$content=bstr2bin($content);


$fp=fopen($file2,'w');
fwrite($fp,$content);
fclose($fp);

$size2=filesize($file2);

echo'转化成二进制后文件大小为:'.$size2;

$content=bin2bstr($content);

$fp=fopen($file3,'w');
fwrite($fp,$content);
fclose($fp);


functionbin2bstr($input)
//Convertabinaryexpression(e.g.,"100111")intoabinary-string
{
if(!is_string($input))returnnull;//Sanitycheck

//Packintoastring
$input=str_split($input,4);
$str='';
foreach($inputas$v)
{
$str.=base_convert($v,2,16);
}

$str=pack('H*',$str);

return$str;
}

functionbstr2bin($input)
//Binaryrepresentationofabinary-string
{
if(!is_string($input))returnnull;//Sanitycheck

//Unpackasahexadecimalstring
$value=unpack('H*',$input);

//Outputbinaryrepresentation
$value=str_split($value[1],1);
$bin='';
foreach($valueas$v)
{
$b=str_pad(base_convert($v,16,2),4,'0',STR_PAD_LEFT);

$bin.=$b;
}

return$bin;
}

⑺ PHP 如何将字符串、数字等转换为二进制数组

<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>

输出:
Array
(
[1] => 80
[2] => 72
[3] => 80
)

⑻ PHP 进制转换 10进制转2进制 自定义个函数

以下是一个转换函数:

function dec_to_bin($datalist,$bin)
{
static$arr=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
if(!is_array($datalist)) $datalist=array($datalist);
if($bin==10) return $datalist; //相同进制忽略
$bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度
$aOutChar=array();
foreach($datalist as $num)
{
$t="";
$num=intval($num);
if($num===0) continue;
while($num>0)
{
$t=$arr[$num%$bin].$t;
$num=floor($num/$bin);
}
$tlen=strlen($t);
if($tlen % $bytelen != 0)
{
$pad_len=$bytelen-$tlen%$bytelen;
$t=str_pad("",$pad_len,"0",STR_PAD_LEFT).$t; //不足一个字节长度,自动前面补充0
}
$aOutChar[]=$t;
}
return$aOutChar;
}

其实,PHP的base_convert、decbin函数就可以完成类似功能。

⑼ 求解 使用php将1000位的十进制大数转成二进制

下面的代码测试通过的,我只用几10位进行测试,理论上成千上万位结果也是正确的,供你参考,算法比较笨蛋(完全模仿人工的除2取余):

<?php
//超大整数(10进制)转换为二进制数
$n='845';
//$n='15';//1111
//$n='257';//100000001
$r='';//结果
while($n){
//$n整除2,商$m、余数$k
$k=0;
$m='';
do{
$k=$k*10+substr($n,0,1);
if($m!=''||$k>1)$m.=floor($k/2);
$k=$k%2;
$n=substr($n,1);
//$r=$k.$r;
}while($n!='');
//echo"r=$r;m=$m ";//break;
//下一轮除法
$n=$m;
$r=$k.$r;
}
echo$r;
?>

⑽ php将图片文件转换成二进制输出的方法

本文实例讲述了php将图片文件转换成二进制输出的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
header(
Content-type:
image/jpeg);
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
r),
$PSize);
echo
$picturedata;
就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别。
这里需要注意的是,发送的header要根据具体情况而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同类型的图片输出不同的头部。

热点内容
ftpup上传三个文件 发布:2025-01-25 01:38:15 浏览:762
录音加密忘记 发布:2025-01-25 01:37:29 浏览:501
闲鱼卖脚本 发布:2025-01-25 01:37:24 浏览:157
密码汇款在什么区域了兑付 发布:2025-01-25 01:36:49 浏览:146
wamp数据库 发布:2025-01-25 01:36:02 浏览:794
安卓通知栏怎么显示秒表 发布:2025-01-25 01:32:47 浏览:757
apk反编译入门 发布:2025-01-25 01:26:43 浏览:472
英雄联盟在哪投诉脚本 发布:2025-01-25 01:26:43 浏览:314
php在线统计 发布:2025-01-25 01:26:42 浏览:65
手机加密室 发布:2025-01-25 01:25:57 浏览:219