整形数组的详解

在数据处理时如果超出最大值,或最小值,会出现一个循环,即超过最大值,输出变成最小值,超出最小值,输出最大值

整形不构用用Long

默认的整形常量都是int型,那么可以为它追究字母L或者直接使用Long转换

eg:system.out.println(Integer.MAX_VALUES+1L)

范围大的数据类型可以自动转为范围小的数据类型,反过来,范围的要转为大的,则要强制转换,并考虑数据溢出

程序虽然支持数据转换处理,但是如果不是必须的情况下不建议转换

byte 类型特别要注意,保存的数据量很小-128~127

ava中,byte在内存中占一个字节,取值范围为何是-128~127?(-2^7~2^7-1)

计算机是用二进制来表示数据的,一个字节也就是8个比特位,其中最高位表示符号位(0正1负)

故byte的取值范围为1000 0000 到 0111 1111

在Java中,是采用补码来表示数据的

正数的补码和原码相同,负数的补码是在原码的基础上各位取反然后加1

1000 000是补码,减一然后按位取反得到其原码1000 0000

(减一得 0111 1111,再按位取反得 1000 0000)

因为是负数,所以最小的byte值为-2^7=-128

0111 1111的十进制为2^7-1=127(等比序列求和)

byte是一个字节,共有2^8=256种可能性,也就是-128~127

其他基本数据类型同理

char没有负值,占两个字节,所以取值范围是0~2^16-1(65535)

比如 byte num=20;

正常来讲在java程序里面20这个数字应该是int型,但是在为byte赋值的时候并没有并没有因为是int型而发生类型转换,java对byte进行 了特殊处理即,没超过byte范围的常量可以自动由int变为byte,如果超过了则要进行强制转换。

总之整形优先考虑Long   然后才是int

使用小数的时候直接使用double来定义

type<int<Long<double  范围由小到大

所有 数据类型自动转换的时候都是 小类型自动转为大类型

10/4=2  是因为int型不保存小数点后的数

计算的时侯选择的数据类型将直接影响小数点后的数。

在任何编程语言中,字符都可以与int进行互转,也就是字符中所描述的内容可以通过int获取其对应的系统编码

 因为字符型变量在内存中是用ASCII值保存的,也就是说是以整数形式保存的,所以可以认为是通用的,但是ASCII码字符只有128个(扩展的ASCII表有256个字符),也就是说,只要一个字节就可以表示所有的ASCII字符了,所以字符型变量占1字节的空间,而整弄变量占的空间长度则和数据总线的宽度一致,也就是说,在32位平台上,它占4字节,在如今的64位平台上,它占8字节。如‘A’

 

猜你喜欢

转载自www.cnblogs.com/shitulaoma/p/12439375.html
今日推荐