Java中 -1l<<<1是多少?
发布日期:2021-06-30 19:20:10 浏览次数:2 分类:技术文章

本文共 804 字,大约阅读时间需要 2 分钟。

答案是:9223372036854775807  其实回答就是Long型的最大值即可!

数字9223372036854775807等于263 − 1,参考:

数字9223372036854775807写成是7FFF,FFFF,FFFF,FFFF16,这是计算机运算中最大的,对于现代计算机上所运行的许多编程语言而言,这个数字也是长整型(long,long int,long long int或bigint)所能赋的最大值。在运行程序时出现该数字一般代表出现错误,例如条件溢出或数值丢失等。

此数字同时也是64位采取带符号扩展内存寻址(架构称此为扩展标准型寻址)所能使用的最大正符号地址。由于该数字是一个,因此出现该数字往往意味着内存地址的错误偏离。在模式下此数字还被用作未分配内存空间的默认初始化值。

在等操作系统所使用的中,定义了数据类型time_t,该类型通常由32位或64位带符号整型实现,主要用于记录自1970年1月1日0时0分0秒()到目前为止的数。采用32位time_t的系统会出现所谓,因此很多新的程序实现都选择迁移到64位版本,此版本的time_t最大的取值就是9223372036854775807(263 − 1),足够记录到2900亿年后的292277026596年12月4日15时30分08秒(UTC)。

其它系统采用64位带符号整型记录自某个纪元到目前为止的滴答数(tick),一些系统(如标准库)约定1次滴答等于1,这样约定的时间系统可以使用到大约2.92亿年后;另一些系统(如)约定1次滴答等于100,此系统所能覆盖的时间范围是纪元前后29227年。

这题考查的知识点很多:

<<<是无符号右移,所谓无符号就是用0填充。

-1的2进制是1111 ... ...

右移一位:

也就是:

关于Java中的位移:

《Java核心技术-基础知识(第8版)》

《Java 7入门经典》



转载地址:https://linuxstyle.blog.csdn.net/article/details/40350731 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Redis安装与调试
下一篇:你知道吗?你可以在异常中解退调用栈

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月27日 02时05分05秒