在不同系统上使用 bindec 生成相同的结果
我很好奇是否可以在不同的系统上使用 php 中的 bindec 方法生成相同的结果。
问题是,当我在 Windows 7 64 位机器上测试时,我的函数(使用 bindec 方法)工作得很好,但是当我将代码传输到我的 Web 服务器(运行 Linux)时,我得到了不同的结果。我已将问题范围缩小到 bindec 方法,因此我知道它是导致问题的原因。
谢谢, 罗布
这是函数。我需要 XOR 运算符,但这会在我的计算机和服务器上生成不同的结果,因此我编写了自己的运算符来看看这是否可行。
function MyXOR($input, $key){
$bin_data = decbin($input);
$bin_key = decbin($key);
$result_string = "";
$len_data = strlen($bin_data);
$len_key = strlen($bin_key);
for($i = 0; $i < $len_data; $i++){
if($bin_data{$i} == $bin_key{$i % $len_key}){
$result_string .= 0;
} else {
$result_string .= 1;
}
}
return bindec($result_string);
}
I am curious if it is possible to generate the same results with bindec method in php, on different systems.
The thing is, my function(which uses the bindec method) works perfectly when I test on my Windows 7 64 bit machine, but when I transfer the code to my web server(running linux), I get different results. I have narrowed my problem down to the bindec method, so I know that it is causing the problem.
Thanks,
Rob
Here is the function. I was in need of the XOR operator, but that was generating a different result on my machine and my server, so I wrote my own to see if that would work.
function MyXOR($input, $key){
$bin_data = decbin($input);
$bin_key = decbin($key);
$result_string = "";
$len_data = strlen($bin_data);
$len_key = strlen($bin_key);
for($i = 0; $i < $len_data; $i++){
if($bin_data{$i} == $bin_key{$i % $len_key}){
$result_string .= 0;
} else {
$result_string .= 1;
}
}
return bindec($result_string);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论