Java数据类型与位运算

2024 年 8 月 8 日 星期四
/
6

Java数据类型与位运算

Java数据类型与位运算

数据类型

Java中的数据类型分为两大类:基本数据类型和引用数据类型。

基本数据类型

Java的基本数据类型包括整型、浮点型、字符型和布尔型等。

  • 整型(integers): 整型数据用于表示整数,常见的整型数据类型包括byteshortintlong。它们分别占用不同字节大小的内存空间,范围从8位到64位。
  • byte: 8bit [-128, 127] 默认:0
  • short: 16bit [-32768, 32767] 默认:0
  • int: 32bit [-2^31, 2^31-1] 默认:0
  • long: 64bit [-2^63, 2^63-1] 默认:0L
  • 浮点型(floating-point numbers): 浮点型数据用于表示小数,主要有floatdouble两种类型。float类型占用32位内存,而double类型占用64位内存,因此double类型的精度更高。
  • float: 32bit [1.40E-45F, 3.4028235E38F] 默认:0.0F
  • double: 64bit [4.9E-324, 1.7976931348623157E] 默认:0.0
  • 字符型(characters): 字符型数据用于表示单个字符,它们在内存中以Unicode字符集编码。Java中的字符类型是char,占用16位内存,默认:'\u0000'。
  • 布尔型(boolean): 布尔型数据用于表示真假值,只有两个取值:truefalse,默认:false。

引用数据类型

Java的引用数据类型包括类、接口、数组等。这些数据类型不直接存储数据,而是存储对数据的引用。

位运算

位运算是对数据在二进制位级别进行操作的一种运算。Java提供了丰富的位运算操作符,包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)以及左移(<<)、右移(>>)、无符号右移(>>>)等。

按位与(&)

按位与运算符将两个操作数的对应位进行逻辑与运算,只有当两个对应位都为1时,结果位才为1。例如:

int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a & b;   // 结果为 1

按位或(|)

按位或运算符将两个操作数的对应位进行逻辑或运算,只要两个对应位中有一个为1,结果位就为1。例如:

int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a | b;   // 结果为 7

按位异或(^)

按位异或运算符将两个操作数的对应位进行逻辑异或运算,当两个对应位不相同时,结果位为1。例如:

int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a ^ b;   // 结果为 6

按位取反(~)

按位取反运算符对操作数的每一位进行取反操作,即0变为1,1变为0。例如:

int a = 5;    // 二进制表示为 101
int result = ~a;   // 结果为 -6

左移(<<)

左移运算符将操作数的所有位向左移动指定的位数,低位补0。例如:

int a = 5;    // 二进制表示为 101
int result = a << 1;   // 结果为 10,即十进制的2

右移(>>)

右移运算符将操作数的所有位向右移动指定的位数,高位补符号位。例如:

int a = 5;    // 二进制表示为 101
int result = a >> 1;   // 结果为 2

无符号右移(>>>)

无符号右移运算符将操作数的所有位向右移动指定的位数,高位补0。例如:

int a = -5;    // 二进制表示为 11111111111111111111111111111011
int result = a >>> 1;   // 结果为 2147483645
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...