$a  =  -443704711  在linux已经溢出了。

解决方案 »

  1.   

    那是否意味着我不能在linux上完成这样的功能了?
      

  2.   

    可是我需要进行^运算,这个运算符只支持int型
      

  3.   

    to yueliangdao0608
    怎么放大,现在在win2000下发现结构还不一样to my_web
    能给点详细建议吗?谢谢
      

  4.   

    double $i;
    $i =  $a^$d;
    $a  = $i;
      

  5.   

    那最简单的一个方法。。
    不要用负数,得到数据后再加一个负号。
    $d  =  43814;  
    $a  =  4738698913;  
    $a  ^=  $d;
    $a = -$a;  
    echo  $a;
    不行你砍死我!    
      

  6.   

    to ciaky(小五)我把算法里所有要发生异或的地方都做了判断
    如果$a < 0就先取负再异或再取符
    但是这样做了之后最终的结果却出现了偏差
      

  7.   

    你这样加:
    if(intval($a) < 0){
      $a = -$a;
    }然后再在结果上加$ = -$a;
      

  8.   

    不行呀。
    if(intval($a) < 0){
    $a = -$a;
    $a ^= $d;
    $a = -$a;
    }
    else
     $a ^= $d我是这样加的,算出来的还是不正确。
    另外再说明一下,与$a异或的不是常量,也是变化的
      

  9.   

    有可能是负数。
    方便的话加我msn吧,[email protected]
      

  10.   

    如果有可能是负数的话
    就要这样判断
    if($a < 0){
    if($d< 0){
    }else{
    }
    }else{
    }
      

  11.   

    如果$d是负数的话,要把$d先取负,再异或,再把$a取负?
      

  12.   

    if($a < 0){
    if($d< 0){ 
          $a ^= $d;
    }else{
          $a = -$a;
          $a ^= $d;
          $a = -$a;
    }
    }else{
    if($d< 0){ 
          $a = -$a;
          $a ^= $d;
          $a = -$a;
    }else{
          $a ^= $d;
    }
    }如果$d是负数的话,要把$d先取负,再异或,再把$a取负?
    --------------------
    大概就是这个意思
      

  13.   

    那样的话,如果$a $d都是负数是不是应该写成这样?
    $a = -$a;
    $d = -$d;
    $a ^= $d;
    $a = -$a
    $d = -$d我要先去吃中饭了,回来继续请教
      

  14.   

    那样的话,如果$a $d都是负数是不是应该写成这样?
    $a = -$a;
    $d = -$d;
    $a ^= $d;
    $a = -$a
    $d = -$d我要先去吃中饭了,回来继续请教----
    如果都是负数就不用了
    就这样就可以了
    $a ^= $d;
      

  15.   

    if($a < 0){
    if($d< 0){ 
          $a ^= $d;
    }else{
          $a = -$a;
          $a ^= $d;
          $a = -$a;
    }
    }else{
    if($d< 0){ 
          $d = -$d;
          $a ^= $d;
          $a = -$a;
    }else{
          $a ^= $d;
    }
    }
    刚才写错了。应该是这样
      

  16.   

    to ciaky(小五)
    计算出来的不正确
      

  17.   

    下午有点事
        
    if($a< -2147483648){
    $a1 = -$a;
    $i1 = $a1^$d;
    $i1 = -$i1;
    }elseif($d<-2147483648){
    $d1 = -$d;
    $i1 = $a^$d1;
    $i1 = -$i1;
    }else{
    $i1 = $a^$d;
    }
    ----------
    这样应该可以了
    为了拿点分。。我容易么
      

  18.   

    兄弟还是不行,知道你辛苦,能否加一下msn好和你当面请教,我也好先把这边给你结了分。