c语言移位运算符与运算用法,c语言中的位移动运算符用法
运算符和运算符的作用是求整数中所有位左移或右移后产生的值。
运算符
有
将A向左移动B位。右边的空位用0填充。
运算符
有
将A向右移动b位。
注意:这些运算符的操作数必须是整数数据类型或枚举类型。
#包含stdio.h
int count_bits(无符号x){
int count=0;
while(x) {
如果(x 1U) {
数数;
}
x=1;
}
返回计数;
}
int int_bits(void){
返回count _ bits(~ 0U);
}
void print_bits(无符号x){
int I;
for(I=int _ bits()-1;I=0;我- ){
putchar((x I)1U)?1 : 0);
}
}
int main(void){
无符号num1,n;
Printf(非负整数:);
scanf(%u ,num 1);
Printf(位移位数:);
scanf(%u ,n);
printf( \ n整数转换为二进制=);
打印位(num 1);
printf( \ n整数的左移值=);
print _ bits(num 1n);
printf( \ n右移的整数值=);
print _ bits(num 1n);
putchar( \ n );
返回0;
}运行结果:
Count_bits函数:函数是计算参数X接收的无符号整数中值为1的二进制位的个数,并返回其个数。
1U(只有低位为1的无符号整数)和x的逻辑与运算决定了x的低位是否为1。如果低位为1,则位数递增。Int_bits函数:返回Int和unsigned类型的位数。
~0U是所有位都为1的无符号整数(通过反转所有位都为0的无符号整数0U获得)。Print_bits函数:显示从高位到带1和0的无符号整数位置的所有位的函数。
函数print_bits是其中无符号整数x的所有位由0和1表示的函数。函数int_bits和count_bits用于执行这项工作。总结:
使用运算符向左移动。
表达式x n会将x的所有位左移n位,右边的空位(低位)会加零。二进制的每一位都是2的指数幂,所以如果左移一位,只要不发生数据溢出,数值就会翻倍。使用运算符向右移动。
表达式x ^ n会将x的所有位向右移动n位。二进制数右移1位后,值将是原来值的一半。当有符号整数的复数为x时,置换运算的结果因编译器而异。在许多编译器中,执行逻辑位移或算术位移。注意:虽然负数可以移位,但是用负数来移位一个数是不标准的,所以最好不要移位负数。
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。