关于PHP二进制位长度的问题

发布于 2022-09-11 15:48:04 字数 910 浏览 13 评论 0

系统和PHP版本

  • 系统:Centos 64位
  • PHP 7.2

网址:http://php.net/manual/en/func...

PHP代码:

<?php

    $a = PHP_INT_SIZE;
    $b = PHP_INT_MAX;
    $c = PHP_INT_MIN;

    echo "\$a的值:", $a . "\n";
    echo "\$b的值:", $b . "\n";
    echo "\$c的值:", $c . "\n\n";

    echo "\$b的二进制:" . decbin($b) . "\n";
    echo "\$c的二进制:" . decbin($c) . "\n";

输出结果:

$a的值:8
$b的值:9223372036854775807
$c的值:-9223372036854775808

$b的二进制:111111111111111111111111111111111111111111111111111111111111111
$c的二进制:1000000000000000000000000000000000000000000000000000000000000000

问题描述:

  • 64位系统下,整数的最大值为:9223372036854775807,最小值为:-9223372036854775808,
  • 最小值的二进制为64位,最高位的1表示为负数。
  • 为什么最大值的二进制是63位?难道省略了最前面的0?

感谢大神解答ヾ(o◕∀◕)ノヾ

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悸初 2022-09-18 15:48:04

整数的最大值实际为64位,即:09223372036854775807,省略了最前面的0

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文