```cint find_highest_bit(int n) { int result = 0; while (n > 0) { n >>= 1; result++; } return result;}```上述函数通过不断右移和计数的方式,实现了快速查找一个整数的最高位1。除了上述例子外,位运算还可以应用于很多其他的场景,如位运算哈希、位运算排序、位运算压...
int a = 5; // 二进制表示:0101 int b = 3; // 二进制表示:0011 int result = a & b; // 结果为1,因为二进制的101和0011的按位与结果是0001,也就是十进制的1 按位或(|)按位或操作也适用于每个二进制位,但如果任一二进制位为1,那么结果的相应二进制位就是1,否则是0。例如:in...
在C语言中,`int`类型用作表示整数的数据类型。它支持多种基本算术与逻辑运算,包括:加法、减法、乘法、除法运算:cint result = 10 + 5; // 加法int difference = 10 - 5; // 减法int product = 10 * 5; // 乘法int quotient = 10 / 5; // 除法 取模运算:cint remainder = 10 %...
2.1 位运算符 2.2 移位运算符 一、数据的存储方式 1.1 printf格式化输出 作用:利用printf输出不同进制下的数字 void test01() { int a = 10; printf("十进制:%d\n", a); printf("八进制:%#o\n", a); printf("十六进制:%#x\n", a); printf("十六进制:%#X\n", a); } void te...
unsignedintnum =0xABCD; unsignedcharlowFourBits = num &0x0F; 快速计算乘除 2 的幂次方: 左移一位相当于乘以 2,右移一位相当于除以 2。 代码示例: intnum =5; intdoubled = num <<1;// 10 inthalved = num >>1;// 2 总之,位运算在 C 语言中是一种强大的工具,可以用于优化代码、处理特定的...
C语言的位级运算可以运用到任何“整数”的数据类型上,如char、short、int、long、long long、或者unsigned这样的限定词。基本的位运算有与、或、非、异或等等。 C语言的位移运算有两种:左移、右移。左移运算:xk 表示x向左移动k位,丢弃最高的k位,并在右端补k个0。右
是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。 C语言提供的位运算符列表: 1、“按位与”运算符(&) 按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两...
intmain(){//uAttr的5~6位上存放着外语数量数据unsignedchar uAttr = 0xE9;//二进制:1110 1001//获取uAttr中外语数量数据unsignedchar uNewAttr = uAttr & 0x30;//(1110 1001 & 0011 0000 == 0010 0000)int number = uNewAttr >> 4;//number == 2} 三、位运算的注意事项 位运算只能用于整型...
位运算符: &、|、^、~、<<、>> 这些运算符用于直接操作二进制位。&是按位与,|是按位或,^是按位异或,~是按位取反,<<是左移位,>>是右移位。例如:int a = 60; // 60 = 0011 1100 int b = 13; // 13 = 0000 1101 int c = a & b; // c = 12 = 0000 1100 条件运算符: ?...