`
messi_18
  • 浏览: 96377 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你知道吗,-Long.MIN_VALUE == Long.MIN_VALUE

    博客分类:
  • java
 
阅读更多
相信吗,-Long.MIN_VALUE == Long.MIN_VALUE
不信的话,可以去Eclipse中自己敲一下。为什么呢?java中有符号整数是补码表示,最高位表示符号位,1表示负数,0表示正数。所以64位的有符号整数long所能表示的最小值(Long.MIN_VALUE)的十六进制表示为0x8000000000000000(最高位是1其余位是0)就是负的2的63次幂。最大的64位有符号整数是0x7fffffffffffffff(最高位是0其余位是1).

所以,-Long.MIN_VALUE应该是0x08000000000000000但是这已经是65位的,表示为64位时最高位的0会被丢弃。所以,还是0x8000000000000000.所以,就成了-Long.MIN_VALUE == Long.MIN_VALUE。实际上是上溢出了,超出了所能表示的最大值。

如果,看编译出来的字节码,甚至能看到编译器直接就把-Long.MIN_VALUE编译成常量-9223372036854775808L,根本没有运算的字节码产生。

最后,还有一点Math.abs(Long.MIN_VALUE)==Long.MIN_VALUE。这个是需要注意的。一个负数的绝对值不一定是正数,要考虑此时的特殊情形。
分享到:
评论

相关推荐

    Java的8大基本数据类型.pdf

    // 以数值形式⽽不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最⼩值:Character.MIN_VALUE=" +(int)Character.MIN_VALUE); // 以数值形式⽽不是字符形式将Character.MAX_VALUE输出到控制台...

    php.ini-development

    directive because it is not set or is mistyped, a default value will be used. ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one ; of the INI constants (On, Off, True, ...

    r40_tinav2.1_最终验证通过_使用CB-S来验证OV5640有横条纹fpscamera+SPI2.0成功_20171114_1443没有外层目录.7z

    framerate = get_framerate((long long)(buf.timestamp.tv_sec),(long long)(buf.timestamp.tv_usec)); if(framerate > 1.0){ cap->cap_fps = framerate; //hv_dbg("framerate: %0.2ffps\n",cap->cap_fps); } ...

    thl_r16_tinav2.0_hm1375验证通过_增加打印设备ID_20170824_1447.7z

    全志R16平台的tinav2.0系统下调通HM1375 2017/8/24 14:04 开发板:SC3817R OS:tina V2.0 1、最新的驱动程序请直接联系HiMax原厂/代理商! R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video...

    hm1375_tinav2.1验证通过_增加设备ID的读取显示_20170825_1333没有外层目录.7z

    2017/8/24 14:04 R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\hm1375.c 2¡¢ R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\...

    VB源码--自定义数字&字符串加密工具

    Dim value As Long Dim ch As Long Dim shift1 As Long Dim shift2 As Long Dim i As Integer Dim str_len As Integer str_len = Len(password) For i = 1 To str_len ' Add the next letter. ch = Asc(Mid$...

    将你输入的密码解密到

    Dim Value As Long Dim ch As Long Dim Shift1 As Long Dim Shift2 As Long Dim i As Integer Dim Str_len As Integer '得到字符串内字符的数目 Str_len = Len(Password) '给每个字符转换成密码数字 For i...

    orcale常用命令

    依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。 下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username...

    二进制图文详解

    long lmin = Long.MIN_VALUE; System.out.println(Long.toBinaryString(lmin)); //-1的规律 int n = -1; System.out.println(Integer.toBinaryString(n)); long l = -1L; System.out.println(Long....

    spring_MVC源码

    16. private static final long serialVersionUID = 1L; 17. @Id 18. @Basic(optional = false) 19. @GeneratedValue(strategy = GenerationType.IDENTITY) 20. @Column(name = "id", nullable = false) 21. ...

    虚拟网卡驱动源代码(原版)

    int npackets = 0, quota = min(dev->quota, *budget); struct sk_buff *skb; struct snull_priv *priv = netdev_priv(dev); struct snull_packet *pkt; while (npackets < quota && priv->rx_queue) { pkt ...

    serialchartinstall

    换句话说,如果你设定min=-1,max=1,那数据“1”将会被描绘在图中的顶端,数据“-1”将被描绘在图中的底端,而“0”将会描绘在图的正中间。数据会从映射到图中的,height就是曲线图的高度,在开始的中可以设置(这...

    Leetcode 两数相除.kt

    LeetCode问题29要求实现两个整数的除法,但不能使用乘法、除法和...然后,使用Math.abs函数将被除数和除数转换为正数处理,以简化问题(同时也是为了处理Int.MIN_VALUE转正时的溢出问题,需要将它们转换为Long类型)。

    单片机课程设计-水温控制c语言程序.doc

    long uint k,n=0,t,min,max; void disp(uint disp_value); void Bcd(uint bcd_value); void delay(uint delay); void ad_init(); int getad(uchar channel); float ad_av(uchar channel); void Relay(); uchar ...

    网络编程之PING实现

    // The return value is 0 if the input cannot be converted to an integer ! // if(argc>2) { times=atoi(argv[2]); if(times == 0) times=DEF_PACKET_NUMBER; } else times=DEF_PACKET_NUMBER; if ...

    cxGrid右键菜单

    procedure PopupMenu_Min(Sender: TObject); procedure PopupMenu_Avg(Sender: TObject); procedure PopupMenu_empty(Sender: TObject); procedure SetColumnFoot(akind: TcxSummaryKind); //输出 procedure ...

    FlexGraphics_V_1.79_D4-XE10.2_Downloadly.ir

    too long (error in TFlexGrid.Paint). - FIX: With little difference between curve angles at smaller scales the curve was drawn backwards (error in TFlexEllipse.Paint). - ADD: Support of the binary ...

    如何使用VB实现打印预览

    ' PrnPRN.aBar > actual value ' ' sP = start page ' eP = end page ' aP = actual page Static Stp As Single Stp = PrnPrn.tBar.Width / ((eP - sP) + 1) PrnPrn.pBar.Width = Stp * aP End Sub ...

    ACE_OS::mktime函数源代码

    tmptm1 = tmptm2 + (tmptm3 = (__time64_t)tb->tm_min); /***** HERE: tmptm1 holds number of elapsed minutes *****/ /* * Calculate elapsed seconds since base date */ tmptm2 = tmptm1 * 60; tmptm...

    C语言函数及相关知识

    t.tm_min = 30; /* Minutes */ t.tm_hour = 9; /* Hour */ t.tm_mday = 22; /* Day of the Month */ t.tm_mon = 11; /* Month */ t.tm_year = 56; /* Year - does not include century */ t.tm_wday = 4; /* ...

Global site tag (gtag.js) - Google Analytics