java中int的基本概念

时间:2025-03-10 17:36:47

一.int的表示方法

int可以用2进制,8进制,10进制,16进制来表示。

比如用来表示11时,以上几种表示方式如下:

2进制:int i = 0b1011;

8进制:int i = 013;

10进制:int i = 10;

16进制:int i = 0xB;

用来表示Integer.MAX_VALUE=2147483647时,以上几种表示方式如下:

2进制:int i = 0b0111_1111_1111_1111_1111_1111_1111_1111;

8进制:int i = 017777777777;

10进制:int i = 2147483647;

16进制:int i = 0x7FFF_FFFF;

所以请注意喽,平常我们写十进制的int时一定不要随便在前面加0,否则含义完全就不一样了。

另外,如果数字太长,可以在数字中间添加_来分割,是完全不影响使用的。

二.int中的负数

int中最小值是多少?

Integer.MIN_VALUE=0x8000_0000,用二进制表示的话,就是

int i = 0b1000_0000_0000_0000_0000_0000_0000_0000;

也就是说,变成了负数之后,第一位符号位之后的数,越接近0,负数值越大。

三.int的位运算

目前的位运算有与,或,异或,取反四种

int i1 = 5 & 1;//1
int i2 = 5 | 1;//5
int i3 = 5 ^ 1;//4
int i4 = ~5;//-6

进行位运算时,先把数字转换为2进制数字,在进行计算。

与运算

我们在计算5 & 1;时,进行如下运算

5的2进制表示为:0b0101;

1的2进制表示为:0b0001;

相同位置的位相同则取1,不同则取0,这个运算中,因为最后一位相同,则取1,结果为0b0001。

int i1 = 5 & 1;// i1 = 1

或运算

我们在计算5 | 1;时,进行如下运算

5的2进制表示为:0b0101;

1的2进制表示为:0b0001;

相同位置的位如果有任意一个为1则取1,都为0则取0,这个运算中,因为倒数第1位和倒数第三位为1,则结果为0b0101,结果仍然为5。

int i1 = 5 | 1;// i1 = 5

异或运算

我们在计算5 ^ 1;时,进行如下运算

5的2进制表示为:0b0101;

1的2进制表示为:0b0001;

相同位置的位如果不相同则取1,相同则取0,这个运算中,倒数第3位不相同,则取1,所以结果为0b0100,结果为4。

int i1 = 5 & 1;// i1 = 4

 取反运算

我们在计算 ~5;时,进行如下运算

5的2进制表示为:0b0000_0000_0000_0000_0000_0000_0000_0101;

把所有位为1的改为0,0的改为1,则结果为:

0b1111_1111_1111_1111_1111_1111_1111_1010

所以最终结果为-6。

int i1 = ~5;// i1 = -6