语句“PHP不支持无符号整数”实际上意味着什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语句“PHP不支持无符号整数”实际上意味着什么?相关的知识,希望对你有一定的参考价值。
我使用的是php 7.0.2
在the manual关于整数的一个地方,我看到了以下声明:
整数可以用十进制(基数10),十六进制(基数16),八进制(基数8)或二进制(基数2)表示,可选地以符号( - 或+)开头。
在手册的一个地方,我在下面看到了矛盾的说法:
PHP不支持无符号整数。
由于这两句话,我感到困惑。在一个地方,它表示一个整数可以选择前面有一个符号,这意味着每当我使用任何整数时,在它前面加上一个符号( - 或+)或不符号将是我的选择。
同时它说PHP不支持无符号整数。
那么,它是否说每当我使用任何整数而没有在其前面加上符号(+或 - )时它不会被视为PHP中的合法整数?
答案
这只是意味着每个整数都是有符号的,你不能创建无符号整数。因此,如果你想使用比PHP_INT_MAX
更大的东西,你必须使用字符串(或像bcmath这样的库)来解决这个问题。
另一答案
用于表示正整数的+前缀是可选的,正整数可以用无符号或+表示。负整数只能用 - 表示。
$a = 123; // decimal number (123)
$a = +123; // decimal number (123)
$a = -123; // a negative decimal number (-123)
$a = 0123; // octal number (equivalent to 83 decimal)
$a = +0123; // octal number (equivalent to 83 decimal)
$a = -0123; // octal number (equivalent to -83 decimal)
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal)
$a = +0x1A; // hexadecimal number (equivalent to 26 decimal)
$a = -0x1A; // hexadecimal number (equivalent to -26 decimal)
$a = 0b11111111; // binary number (equivalent to 255 decimal)
$a = +0b11111111; // binary number (equivalent to 255 decimal)
$a = -0b11111111; // binary number (equivalent to -255 decimal)
以上是关于语句“PHP不支持无符号整数”实际上意味着什么?的主要内容,如果未能解决你的问题,请参考以下文章