购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 整 型

2.2.1 概 念

整型(integer)表示的变量属于所有整数集合Z。

Z={...,−N,−N+1,...,0,1,2,...,N−1,N,...}

整型可表示的数值如表2-2所示。

表2-2 整型数值表示范围

在使用integer时,需要注意integer所能表示的最大值和最小值,防止溢出。integer所能表示的数值范围由字长决定,而字长一般与机器平台相关。例如64位机器上,integer所能表示的范围如下:

−2 63 ~2 63 −1

PHP有如表2-3所示的常量表示数值范围。

表2-3 PHP整型数值常量

在涉及大数运算时,可以使用BCMath(任意精度数学,手册链接:http://php.net/manual/zh/book.bc.php)扩展。

2.2.2 面试题:大数求和

题目描述: 有两个大数,如何求它们的和?

看题目要求,两个大数超过了integer所能表示的整数范围,所以不能直接相加。在实际应用时,如果安装了BCMath扩展,可以使用bcadd来计算。例如:

     <?php
     echo bcadd('9999999999999999','25');
     //Output 10000000000000024
     ?>

在此,可以采用模拟手工计算加法的方法:

(1)设置初始进位为0。

(2)从个位开始,向高位移动,每次取出当前位置的两个数字与进位相加。

(3)第(2)步得到的和如果大于10,则取余数作为该位置的值,并设置进位为1;如果小于10,则取得到的和为该位置的值,并设置进位为0。

(4)重复第(2)步和第(3)步,直到较长的数字处理完。

(5)如果最后的进位为1,则在结果的最高位拼接上1。

程序代码如下:(源码文件:ch02/big_add.php) AP21lTjkcw8hX7rTX+hsVaG2MKSq76j1/BRbDz3fTshfzeUt1jzSUMSmLxGxx9dL

点击中间区域
呼出菜单
上一章
目录
下一章
×