首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"PHP不支持无符号整数“的语句实际上是什么意思?

"PHP不支持无符号整数“的语句实际上是什么意思?
EN

Stack Overflow用户
提问于 2017-12-29 17:50:27
回答 3查看 3.1K关注 0票数 0

我使用的是PHP7.0.2

在整数的手册中,我看到了以下语句:

整数可以用十进制(基10)、十六进制(基16)、八进制(基8)或二进制(基2)表示法指定,可以在前面加上符号(-或+)。

在手册的一个地方,我看到了以下自相矛盾的说法:

PHP不支持无符号整数。

因为这两句话,我弄糊涂了。在一个地方,它说一个整数可以有一个符号,这意味着每当我使用任何整数时,在它前面加上一个符号(-或+)将是我的选择。

同时,据说PHP不支持无符号整数。

那么,它是否说,每当我使用任何整数而没有在其前面加上符号(+或-)时,它在PHP中不被视为法定整数吗?

EN

回答 3

Stack Overflow用户

发布于 2021-11-07 20:36:00

为了澄清这一点,正如整数float是不同的数据类型一样,无符号整数实际上是整数的不同数据类型。标准的整数通常是32位(在不同的编程语言之间可以有所不同),可以是大约20亿到+20亿,而无符号整数可以是0到大约40亿。你也可以有越来越小的整数,这些整数的最大值越来越低,也可以不带符号,保持相同数量的不同选项,但只有正数。

这与数据库键字段相关,在这些字段中,对于自动增量标识类型字段来说,无符号整数是理想的,但在php中不支持。它变得很复杂,所以如果您只是使用php,不要对它施加压力,如果您使用php与数据库提供程序一起使用,最好避免在您的数据中使用无符号整数,因为php将中断或开始返回与实际存储的正值不同的负值。

是那种烦躁使我的眼睛有点抽搐。

票数 2
EN

Stack Overflow用户

发布于 2017-12-29 17:55:54

这就意味着,每个整数都是有符号的,您不能创建无符号整数。因此,如果您想要使用比PHP_INT_MAX更大的东西,就必须使用字符串(或一些库,如bcmath)来解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2017-12-29 18:01:05

表示正整数的+前缀是可选的,正整数可以用无符号或+表示。负整数只能由-表示。

扩展示例从整数指南

代码语言:javascript
复制
$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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48026426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档