第一种方式(支持小数)

 
  1. <?php
  2. /*
  3.  * 正负数相互转换(支持小数)
  4.  */
  5. function plus_minus_conversion($number = 0){
  6.     return $number > 0 ? -1 * $number : abs($number);
  7. }
  8.  
  9. echo plus_minus_conversion(100.58);
  10. ?>

运行结果

 

 

 

第二种方式(不支持小数)

 
  1. <?php
  2. /*
  3.  * 正负数相互转换
  4.  */
  5. function plus_minus_conversion($number = 0){
  6.     return ~$number + 1;
  7. }
  8. echo plus_minus_conversion(-100.58);

运行结果

正数取反加一后,得到就是负数的补码,负数是以补码的形式存在内存中,补码转为原码是就是正数要转化后对应的负数

负数取反加一后,得到一个补码,但正数的补码原码一样

注意:取反和取反码是不同的两个概念,运算时都是补码形式参与运算,因为有负数参与

更多推荐

【php】 正负数转换,超好用