码迷,mamicode.com
首页 > 编程语言 > 详细

java int

时间:2019-09-16 19:54:11      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:负数   数字   系统设计   最大值   原来   最大   mda   它的   方法   

  JAVA是采用Unicode编码。每一个字节占8位。32位系统,每个int是 4个字节,32位。
  byte是Java原始类型。byte可存储在[-128,127]范围以内的整数值。
  Java中的所有整数值都是32位的int值,除非值后面有l或L(如235L),这表示该值应解释为long。

  java中的int的取值范围计算思路如下:32个格子中放满0或1的方法有2的32次方种。所以有两种可能,两种推算方法:
1、将二进制最大的数字(32个1)转换成10进制,即 4294967296
2、有2的32次方种算法,那么依照10进制最大的数就是2的32次方。即4294967296。
所以java中的int的取值范围:2的31次方:+/- 2147483648

  int的取值范围为: -2^31——2^31-1,即-2147483648——2147483647
1、对于正数来说,它的补码就是它本身。
2、对于负数来说,它的补码是它对应的正数的二进数所有位取反之后加一。
3、由负数的补码求原码也是相同的操作(所有位取反+1)即为该负数的绝对值
  int是4个字节,32位,
  10000000 00000000 00000000 00000000 是补码,第一位为符号位,1表示负数,所以
  对剩下的位取反,结果为 1111111 11111111 11111111 11111111,加一后为10000000 00000000 00000000 00000000
4、所以原码指的是-2^31=-2147483648。

int的取值范围为-2^31——2^31-1
  unsigned int 能表示的最大值是2^32-1。至于原因,看了下面的例子就会明白:
假设一个单片机用二位二进制来表示数,很明显就是00,01,10,11这四种情况,分别表示0,1,2,3这四个数。
这就对了,原来0也占用了一种状态,总共能表示2^32种状态的16位二进制数就只能表示0~2^32-1,即 0~32767 了。
(一个盒子能存放若干个数据,但是存放个数上限都是2的倍数。现在我们要把整数放进去,整数如果只有正整数和负整数那就好办了,空间一人一半。
可偏偏整数还包含一个零。这个让强迫症患者很难接受,但是电脑系统设计师必须考虑到这一点,0不是啥都没有,人家也要占空间的。
总归是要从正整数那一边或负整数那一边匀一个空间过来,2的32次方-1相对比较简单好记,那就从正整数那边匀一个空间过来吧。)

    1000  0000   0000  0000   0000   0000   0000   0000                         Integer.MIN_VALUE 

  取反 0111  1111   1111   1111    1111   1111    1111    1111     取反之后变成了  Integer.MAX_VALUE

加1 1000 0000 0000 0000 0000 0000 0000 0000 -Integer.MIN_VALUE(与原来的结果一样)

以上均来自网上搜索整理……

java int

标签:负数   数字   系统设计   最大值   原来   最大   mda   它的   方法   

原文地址:https://www.cnblogs.com/adlin-forever/p/11529020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!