java integer范围值的大小_求最大值最小值的代码

java integer范围值的大小_求最大值最小值的代码java中的Integer.MAX_VALUE和Integer.MIN_VLAUE最近在刷leetcode的题时,才发现有几道题的利用到Integer类型的最大值和最小值,尤其是在判断是否溢出的时候,有道题就非常经典直接判断最后一位,比如最大值231-1的最后一位是7,而最小值-231的最后一位是8,这样进行一个判断8.字符串转换整数(atoi)这道题对我在面试过程中被问到如何判…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

java中的Integer.MAX_VALUE和Integer.MIN_VALUE

最近在刷leetcode的题时,才发现有几道题的利用到Integer类型的最大值和最小值,尤其是在判断是否溢出的时候,有道题就非常经典直接判断最后一位,比如最大值231 – 1的最后一位是7,而最小值 -231 的最后一位是8,这样进行一个判断
8. 字符串转换整数 (atoi)
这道题对我在面试过程中被问到如何判断是否溢出有了很大启发
查下JDK1.6帮助文档是这样写的
在这里插入图片描述
在这里直接能看到这个数值,突然一看对于最大值还是能理解的,但是对于最小值就不是很理解了。
一般能在网上看到这段话

四字节的整形 有符号是 -231~231-1 ;在计算机内部数值的二进制表示,有正码、反码和补码。一般采用二进制补码进行表示和运算,MIN_VALUE = 0x80000000 和 MAX_VALUE = 0x7fffffff 就是补码表示的Integer的最小值(-231)和最大值(231-1)。至于Integer的最大值最小值为什么是这两个数,这是因为Java语言规范规定int型为4字节,不管是32/64位机器,这就是其所宣称的跨平台的基础部分.

那么在计算机中其实是用做补码进行表示和运算的,使用补码不仅仅修复了0符号以及存在两个编码的问题,而且还能够多表示一个最低数,这也就是8位二进制数表示的范围为[-127,+127],而使用补码表示的范围为[-128,127]
例如有:

(-1)+ (-127) = [1000 0001] + [1111 1111] = [1111 1111] + [1000 0001] = [1000 0000]

-1-127的结果应该是-128,在用补码运算的结果中,[1000 0000] 就是-128,但是注意因为实际上是使用以前的-0补码来表示-128,所以-128并没有原码和反码表示。(对-128的补码表示[1000 0000] 补算出来的原码是[0000 0000],这是不正确的)

那么类似的对于32位而言,

int类型能表示的最小负数

最小的负数的二进制码是1000 0000 0000 0000 0000 0000 0000 0000 ,补码还是这个值,所以最小值为-231

int类型能表示的最大正数

最大正数是毫无疑问,所以还是0111 1111 1111 1111 1111 1111 1111 1111,也是231 – 1

重要的性质最小值-1

最小值的二进制补码表示 1000 0000 0000 0000 0000 0000 0000 0000 ,减1后称为0111 1111 1111 1111 1111 1111 1111 1111是最大的正数

重要的性质最大值+1

最大值的二进制补码表示 0111 1111 1111 1111 1111 1111 1111 1111,加1后称为 1000 0000 0000 0000 0000 0000 0000 0000

参考文献:
java int型最大值/最小值,最大值+1,最小值-1
原码, 反码, 补码 详解

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

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

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


相关推荐

  • Modbus 通信协议详解

    Modbus 通信协议详解一、Modbus协议简介Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同

    2022年7月4日
    17
  • EL表达式语言_el表达式的语法格式

    EL表达式语言_el表达式的语法格式EL表达式语言1.El简介EL(ExpressionLanguage,表达式语言)是一-种简单的语言,可以方便地访问和处理应用程序数据,而无需使用JSP脚本元素(Scriptlet)或JSP表达式。EL最初是在标准标签库JSTL(JavaServerPageStandardTagLibrary)1.0中定义,从JSTL1.1开始,SUN公司将EL…

    2022年7月28日
    5
  • 学习笔记——STM32摄像头OV7725(二)

    学习笔记——STM32摄像头OV7725(二)AL422B及摄像头驱动原理一、AL422B简介STM32F4系列的控制器主频高、一般会扩展外部SRAM、SDRAM等存储器,且具有DCMI外设,可以直接根据VGA时序接收并存储摄像头输出的图像数据;而STM32F1系列的控制器一般主频较低、为节省成本可能不扩展SRAM存储器,而且不具DCMI外设,难以直接接收和存储OV7725图像传感器输出的数据。为了针对上述…

    2022年9月23日
    0
  • Lucene中AttributeSource作为TokenStream父类的原因

    Lucene中AttributeSource作为TokenStream父类的原因lucene3.0lucene中有如下的类层次:org.apache.lucene.util.AttributeSourceorg.apache.lucene.analysis.TokenStream(implementsjava.io.Closeable)org.apache.lucene.analysis.NumericTokenStreamorg.apache…

    2022年7月22日
    8
  • matlab中的imwrite_medfilt2函数

    matlab中的imwrite_medfilt2函数1.imwrite函数imwrite函数的作用是将图像写入图形文件。2.语法imwrite(A,filename)imwrite(A,map,filename)imwrite(___,fmt)imwrite(___,Name,Value)(1)imwrite(A,filename)将图像数据A写入filename指定的文件,并从扩展名推断出文件格式。imwrite在当前文件夹中创建新文件。输出图像的位深度取决于A的数据类型和文件格式。对于大多数格式来说: 如果……

    2022年10月4日
    0
  • 41-新的信号注册函数 sigaction

    41-新的信号注册函数 sigaction在这之前,我们一直使用signal来注册信号处理函数,而且一开始我甚至都没有提起过甚至signal还有一个兄弟——sigaction.我相信,把sigaction放到这里是适合的,因为你已经具备了足够的基础去理解它了。1.sigaction函数不同于signal函数,sigaction函数是符合POSIX标准的,而signal只是ANSIC标准函数。除了上面的区

    2022年5月25日
    34

发表回复

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

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