1、整数类型
| byte | 1 byte | -2^7~2^7-1 |
| short | 2 byte | -2^15~2^15-1 |
| int | 4 byte | -2^31~2^31-1 |
| long | 8 byte | -2^63~2^63-1 |
① C++中不同操作系统中long语言所占的字节:如果计算机是32位操作系统,则 long 是 4 byte。 如果是64位操作系统,则 long 是 8 byte。 |
| ② 长整型、十六进制与八进制: 长整型数值有一个后缀 L 或 l ( 如:4000000000L) 。 十六进制数值有一个前缀 Ox 或 0X (如:OxCAFEL)。 八进制有一个前缀 0(如:010 对应八进制中的 8)。 很显然,八进制表示法比较容易混淆,所以建议最好不要使用八进制常数。 |
| ③ Java在数据处理相对于其他语言的优越性: 在 Java 中,整型的范围与运行 Java 代码的机器无关。这就解决了软件从一个平台移植到另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问题。 与此相反,C 和 C++ 程序需要针对不同的处理器选择最为高效的整型,这样就有可能造成一个在 32 位处理器上运行很好的 C 程序在16位系统上运行却发生整数溢出。由于 Java 程序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须固定。 |
| ④ Java对大型数据输入优势: 从 Java 7 开始,还可以为数字字面量加下划线,如用 1_000_000(或者0b1111_0100_0010_0100_0000 ) 表示一百万。这些下划线只是为了让人更易读。Java 编译器会去除这些下划线。 |
| ⑤ 无符号区别: Java 没有任何无符号(unsigned) 形式的 int、long、short 或 byte 类型。 C和C++中,在有符号整型前目加上:unsigned 表示无符号。例如: 在unsigned short中:1000000000000001 有符号:-1 无符号:32769 |
⑥ 获取整型尺寸(占用字节数):C++获取方法: cout< |
⑦ 获取整型最大值、最小值:C++: cout< |
⑧ 整型的溢出:C++: int value = INT_MAX+1; //01111111+1=1000000=0,系统显示 INT_MIN数值。 int value = INT_MAX+2; //01111111+2=11111111=-1,系统显示 INT_MIN+1数值。 unsigned int value=UINT_MAX+1; //11111111+1=100000000=0,系统显示0。 unsigned int value=UINT_MAX+2; //11111111+2=100000001=1,系统显示1。 Java: System.out.println(Integer.MAX_VALUE);//输出为:2147483647 System.out.println(Integer.MAX_VALUE+1);//输出为:-2147483648 System.out.println(Integer.MAX_VALUE+2);//输出为:-2147483647 System.out.println(Integer.MIN_VALUE-1);//输出为:2147483647 System.out.println(Integer.MIN_VALUE);//输出为:-2147483648 System.out.println(Integer.MIN_VALUE-2);//输出为:2147483646
出现以上的原因是ASCII负数补码的机制不一样。 |
| float | 4 byte | -3.4028235E38~3.4028235E38(有效位数为7~8位) |
| double | 8 byte | -1.7976931348623157E308~1.7976931348623157E308(有效位为15位) |
| ① Java没有的长双精度浮点类型:long double: long double:16 byte
|
| ② 表示方式: float 类型的数值有一个后缀 F 或 f (例如,3.14F。) 没有后缀 F 的浮点数值(如 3.14 ) 默 认为 double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D)。 |
| ③ 科学计数法: 1)尾数 2)E/e 3)指数 例如: double value3=123450000000000; double value4=1.2345E14; |



