Java0xffffffff为什么表示为-1

Java0xffffffff为什么表示为-1inti=0xffffffff;System.out.println(i);输出-1上面的程序有个问题为什么inti=0xffffffff;没有报溢出错误,且输出为-1?因为0xffffffff实际是二进制,程序中任何十进制,八进制,16进制的数在计算机底层都是二进制,表示成X进制只是为了让人看明白,所以0xffffffff在电脑中就是32个1,而不是2的32次…

大家好,又见面了,我是你们的朋友全栈君。

int i = 0xffffffff;
System.out.println(i);    输出-1

上面的程序有个问题

  1. 为什么int i = 0xffffffff;没有报溢出错误,且输出为-1?

    因为0xffffffff实际是二进制,程序中任何十进制,八进制,16进制的数在计算机底层都是二进制,表示成 X进制只是为了让人看明白,所以0xffffffff在电脑中就是32个1,而不是2的32次方减1。光是有底层表示还不够,语言需要把底层表示解释为高层抽象。在java中,常数默认为int类型(32bits),32个1解释为int就是-1。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145635.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows安装git教程_git安装教程图文详解

    windows安装git教程_git安装教程图文详解1.版本控制概述1.1Git什么是版本控制在我们日常生活中,使用微信6.5.3版本,QQ7.4版本,Chrome43.0.2357.65版本,表示的都是某些软件使用的版本号。这些软件在开发过程中,版本都是由1不断的变化而来。对于软件公司来说,软件的开发过程中的变化,都需要记录下来,从而方便软件开发的管理,这个过程就是版本控制。也就是,记录若干文件内容变化,以便将来查阅特定版本修订情况的系统(软件)。1.2常见版本控制软件CVS表示并发版本系统,是老版本控制软件系统,市面上基本上不使用了。

    2022年9月4日
    2
  • 2017美赛A题论文阅读笔记

    2017美赛A题论文阅读笔记2017美赛O奖论文阅读笔记

    2022年5月27日
    30
  • 关于HeartBleed漏洞的总结「建议收藏」

    关于HeartBleed漏洞的总结「建议收藏」一:前言HeartBleed漏洞又称为心脏出血漏洞,编号(CVE-2014-0160),产生原因:由于未能在memcpy()调用受害用户输入的内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSl所分配的64KB内存,将超出必要范围的字节信息复制到缓存当中,再返回缓存内容,这样一来,受害者的内存内容就会每次泄露64KB.简单来说,这就是OpenSSL缺陷造成的漏洞二:环境…

    2022年7月25日
    11
  • Java实现对List去重

    Java实现对List去重方式一,使用for循环遍历去除List中的重复元素代码如下 publicstaticvoidmain(String[]args){Test07test07=newTest07();System.out.println(test07.getList());}publicListgetList(){…

    2022年5月25日
    40
  • 视频 | 一步步教你操作websocket通知案例「建议收藏」

    视频 | 一步步教你操作websocket通知案例

    2022年2月13日
    41
  • java递归如何退出_递归删除数组某个元素

    java递归如何退出_递归删除数组某个元素###Java递归删除文件publicstaticvoidmain(String[]args){Filefile=newFile(“D:\\dir”);recursiveDelete(file);}###recursiveDelete方法privatestaticvoidrecursiveDelete(Filefile){if(file.isDirectory())…

    2022年9月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号