首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:使用php执行可视基础代码

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

Stack Overflow用户
提问于 2015-06-10 09:30:50
回答 2查看 71关注 0票数 1

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

这是我的VB代码:

代码语言:javascript
复制
Dim data1 As Byte
Dim data1 As Byte
Dim num = 5117    
data1 = (num >> 6) And &HFF
data2 = num And &H3F

这是我的php代码:

代码语言:javascript
复制
$data1 = ($num >> 6) && &HFF;
$data2 = $num && &H3F;

现在的问题是,当我们运行VB代码并输出时,它显示的内容与php中的不同。例如,在vb中,data2显示为61,而在php中显示为1,有人能帮助我们解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 13:35:37

我相信在PHP中,按位和运算符是&而不是&&。而十六进制的文字并不是这样指定的。试着做这样的事情:

代码语言:javascript
复制
$data1 = ($num >> 6) & 0xFF;
$data2 = $num & 0x3F;

检查位运算符的PHP文档。十六进制文字也是如此。

票数 1
EN

Stack Overflow用户

发布于 2015-06-10 09:53:01

在PHP &HFF和&H3F中,不会像您定义的那样被视为Hexadecimal代码。

代码语言:javascript
复制
$data1 = ($num >> 6) && &HFF;
$data2 = $num && &H3F;

将产生错误unexpected & ..,您应该尝试-

代码语言:javascript
复制
$data1 = ($num >> 6) && hexdec ('&HFF');
$data2 = $num && hexdec ('&H3F');  

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

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

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

https://stackoverflow.com/questions/30752442

复制
相关文章

相似问题

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