<<
的基本道理位运算符 <<
在 C 言语中称为左移运算符,用于将一个数的全部二进制位向左挪动指定的位数。每向左挪动一位,相称于将该数乘以 2。比方,j<<1
表示将变量 j
的值左移一位。
int
、char
、short
等。假如操纵数是浮点数或罗列范例,编译器会将其转换为整数范例。int
范例,合法的移位位数范畴平日是 [0, 31]
。j<<1
的现实利用j<<1
可能用来实现将变量 j
的值乘以 2。这是因为左移一位相称于乘以 2。比方:
int j = 3;
int result = j << 1; // result 现在等于 6
左移运算可能用来清除整数高位的一些位。比方,假如想要将整数 j
的高位清零,可能将其左移充足的位数:
int j = 0b11010101; // 二进制表示
int mask = 0b11111000; // 面具,用于肃高傲位
int result = j & mask; // 利用按位与操纵符来肃高傲位
在逻辑移位中,左移运算可能用来实现将整数转换为无标记整数。比方:
int j = -1; // 有标记整数
unsigned int result = (unsigned int)j << 1; // 将 j 转换为无标记整数后左移
在某些情况下,利用左移运算符可能比直接利用乘法运算符更高效,因为左移运算平日比乘法运算更快。
<<
与逻辑与运算符 &&
看起来类似,但它们的优先级跟感化完全差别。经由过程以上内容,我们可能懂掉掉落 j<<1
的奥秘及其在现实编程中的利用。左移运算符 <<
是 C 言语中一种非常富强的东西,可能用于各种位操纵,优化顺序机能,并实现各种复杂的功能。