永发信息网

PHP 如何在64位系统让32位的整型左移溢出

答案:1  悬赏:10  手机版
解决时间 2021-12-01 12:07
PHP 如何在64位系统让32位的整型左移溢出
最佳答案
可以在64bit系统上把补码处理一下
×手上没装64bit的php所以用Java的64bit的long模拟

public class Test {
    public static void main(String[] args) {
      int a=83661<<15;
      System.out.println("32bit:"+a);      
      long n=83661L<<15;
      System.out.println("64bit:"+n);      
      if(n>0x7fffffffL){
      n--; n=~n; n&=0x7fffffffL; n=-n;
      }
      System.out.println("64bit处理后:"+n);
    }
}32bit:-1553563648
64bit:2741403648
64bit处理后:-1553563648如不想移植以上的,PHP还可以直接把数值pack()打包成32bit有符号,再按32bit有符号unpack()一次也能得到需要的负数,不过感觉这样效率不如以上直接计算快..
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何培养外国人学中文的兴趣
为什么我喜欢在深夜等一些极静的环境下一个人
从马厂到长沙火车站怎么坐公交车,最快需要多
电阻会因为电压的大小而变化吗?
手机MEID和IMEI码分别代表什么?
啤酒城这个名字是怎么来的
深圳户口的人 一年之内是不是随时都能去香港
Adobe CS6的四大套装
浪!有浪字的词语,成语,俗语!有哪些!霸气
销售员日常工作流程与技巧
暑假去了山东水泊梁山的收获 200字
急切寻求西北大学经济管理学院的研究生
(72-4)x(8÷2)八怎样简便计算
首发路产的全称是什么
通力电梯v3f16l变频器为什么老坏,是不是设计
推荐资讯
单选题小明用两个相同的铁锅来煮鸡蛋,两锅中
门月是什么字繁体
滴水能把石穿透万事功到自然成非淡泊无以明志
柞水到泾阳茯茶小瑱自驾游怎么走
易道手脑速算(浦北分校)地址有知道的么?有点
童装商标上有byk是什么牌子
经过直棱柱的一个顶点有几个面,几条棱
女星中谁的腰最细
炒猪肉怎么做好吃,豆豉炒猪肉的家常做法
井底有10米深,地面污水能渗到井里么?
孔子姓什么?名什么?是啥朝的啥国人?
谁克制中单乌鸦
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?