错误:使用php执行可视化基础代码

时间:2015-06-10 09:30:50

标签: php vb.net

我们正在尝试使用PHP将VB系统转换为基于Web的系统。目前我们无法理解VB中的几行,这使得我们很难将其转换为php。

这是我的VB代码:

Dim data1 As Byte
Dim data1 As Byte
Dim num = 5117    
data1 = (num >> 6) And &HFF
data2 = num And &H3F

这是我的PHP代码:

$data1 = ($num >> 6) && &HFF;
$data2 = $num && &H3F;

现在的问题是,当我们运行VB代码并输出时,它显示的不同于php。例如在vb中,data2显示为61但在php中它显示为1.任何人都可以帮助我们解决这个问题。

2 个答案:

答案 0 :(得分:1)

我相信PHP中的按位AND运算符是&而不是&&并且没有像这样指定十六进制文字。尝试这样的事情:

$data1 = ($num >> 6) & 0xFF;
$data2 = $num & 0x3F;

查看bitwise operators的PHP文档。对于hex literals

答案 1 :(得分:0)

PHP & HFF & H3F 不会被视为您定义的Hexadecimal代码。

$data1 = ($num >> 6) && &HFF;
$data2 = $num && &H3F;

将生成错误unexpected & ..您应该尝试使用 -

$data1 = ($num >> 6) && hexdec ('&HFF');
$data2 = $num && hexdec ('&H3F');  

hexdec()会将十六进制转换为十进制。

  

但在这种情况下,$num && hexdec ('&H3F')将返回true。所以$data1& $data2将包含true。如果你echo他们,你会得到1