我认为了解它们的基本功能 - 对位进行操作(翻转、移位、反转等......)。
我的问题是我不知道什么时候需要使用它们,而且我认为我并不完全理解位。
我知道一个字节中有 8 位,并且我知道位是 a0
或1
. 现在这里是我开始感到困惑的地方......我相信数据类型以不同的方式定义位组合。因此,如果我声明一个int
,则为数字留出 32 位,如果我声明一个字符,则留出 8 位,并且该数据类型的位定义一个字母。
带着这个想法,我在java中做了以下让我困惑的基本操作:
int num = 00000010;
System.out.println(num);
这会打印8
,如果我num
这样定义:
int num = 00000100;
System.out.println(num);
这打印64
因此,为了练习按位运算(只是为了它),我尝试了这个:
int num = 00000010 << 1;
System.out.println(num);
它打印16
出我认为它会将位向左移动一位并打印的位置64
。
这里发生了什么,我什么时候需要应用这种操作位的方法?