关于PHP二进制位长度的问题
系统和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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
整数的最大值实际为64位,即:09223372036854775807,省略了最前面的0