java int

5 篇文章 0 订阅
5 篇文章 0 订阅
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相对比较简单好记,那就从正整数那边匀一个空间过来吧。)

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值