黑马程序员技术交流社区
标题:
关于数据类型的基础问题!!
[打印本页]
作者:
黄方
时间:
2012-3-5 13:27
标题:
关于数据类型的基础问题!!
我想知道byte int long 等等基本数据类型能表示数的范围是多少呀?是一个一个的记的吗?我想应该有个公式之类的吧。搞了好半天没搞出来,坐等解析啦
作者:
唐兴旺
时间:
2012-3-5 13:39
byte:-2的7次方~(2的7次方-1)
short:-2的15次方~(2的15次方-1)
int:-2的31次方~(2的31次方-1)
long:-2的63次方~(2的63次方-1)
规律应该就是你记住byte,剩下的次方数依次*2+1。
作者:
肖岑锋
时间:
2012-3-5 13:48
楼上正解
作者:
胡元
时间:
2012-3-5 13:51
因为计算级内部是2进制运算,byte是8个二进制,去点符号位就是7个二进制,所以是-2的7次方到2的其次方减1,而int是32位,去掉符号位是31位,所以原理和上面相同
作者:
段玉超
时间:
2012-3-5 14:07
不用记得 当然记得做好 想 int byte long float 和 double 这样的基本类型都对应的有 相应的包装类型 都在 java.lang语言包中,他们基本上都提供 MAX_VALUE 和MIN_VVLUE 静态字段,可以通过他们 获得 他们的最大值,最大值。如果是是整形的
int、或long ,MAX_VALUE 加上 1 就是最小值
。 浮点型的 会复杂一些,浮点型的Min_Value 提供的是 该类型可以容纳的
最小的正数
。JAVA 中没有对溢出检查溢出,这个是有危险的 这也是,为什么MAX_VALUE+1 可以得到最小值。因此,在所大数值运算的时候 要特别注意,最好检查一下,不过 JAVA也提供了BigInteger ,还有一个好像 叫BigDecimal(具体记不清了)可以实现任何大小数值的计算。
作者:
王利强
时间:
2012-3-5 14:45
都是以二进制形式存在于计算机中的,byte型在内存中占一个八位,short型是两个八位,int型是四个八位,long是八个八位,减去符号位,就算出来了
作者:
黄方
时间:
2012-3-5 20:07
唐兴旺 发表于 2012-3-5 13:39
byte:-2的7次方~(2的7次方-1)
short:-2的15次方~(2的15次方-1)
int:-2的31次方~(2的31次方-1)
嗯嗯,谢谢!我明白了!
作者:
种法腾
时间:
2012-3-5 20:26
学习了
作者:
刘雷冲
时间:
2012-3-5 22:03
问题不错,多谢指教学习了。
不过,我了解容量小的类型自动转换成容量大的类型
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2