C语言中“>>=,<<=,&=,^=,|=”分别表示什么意思?请举例说明
1、C语言中的 >>= 意思为:右移后赋值
代码示例为:
x = 8; x >>= 3;
右移后结果为:00000000 00000000 00000000 00000001
2、C语言中的 <<= 意思为:左移后赋值
代码示例为:
x = 8;
x <<= 3;
左移后赋值结果为:00000000 00000000 00000000 01000000
3、C语言中的 &= 意思为:按位与后赋值
代码示例为:
x = 0x02;
x &= 0x01;
按位与后的结果为:0x00
4、C语言中的 ^= 意思为:按位异或后赋值
代码示例为:
x = 0x02;
x ^= 0x01;
按位异或的结果为:0x03 等同于0011
5、C语言中的 |= 意思为:按位或后赋值
代码示例为:
x = 0x02;
x |= 0x01;
按位或的结果为:0x03 等同于0011
扩展资料:
1、C语言运算符的优先级顺序
运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。
2、比特右移运算符的位移
比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移。例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。
参考资料来源:百度百科-C语言
&: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。|: 是位运算符,表示“按位或”。
资料扩展1、符号 & 和 | 这两个运算符都是二进制的按位操作符。
&: 二进制“与”(都为1时,结果是1,否则是0。),比如:1010 & 1011 = 1010,1010 & 1000 = 1000。
|: 二进制“或”(有1时,结果是1,都是0时,结果为0。),比如:1010 | 1011 = 1011,1010 | 1000 = 1010。
2、位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。
例如:
表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1。
表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。
3、C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
4、位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(>)六种。
>>= 右移
int x=8;//1000
x>>=2;//0010 x=2
<<=左移 跟上面的一样 只不过向左位移 省略……
&=位与
int x=11;//1011
x&=7;0011 &0111 结果 x=3 0011 在二进制上做与运算
^=异或
int x=3;//0011
x^=7;0011^0111 结果 x=4 0100 比较两个位不相同的得1
|=位或
int x=1;//0001
x|=6;//0001 | 0110 结果x=7 0111 位的或运算 两个位只要有一个是1就得1
C语言 数据结构,*&L 与*L的差别是什么?
【答案】:<p 是用来做指针处理的 L表示:L里面放了一个地址,*L则把这个地址的内容提出来 比如:20H这个地址里面存了一个数5 而L则把20H这地址存起来了 L就等于5 而*&L而不同 <p & 意思是取地址 &L就是把L的地址位置取出来。例于L在0X30位置 &L的结果,相当于*(0X30)。这时,要看...
C语言中scanf("%d%d",&l,&k);
d代表输入的是整数,&l代表第一个数是输给l的,&代表取址。整个的意思就是,从键盘输入两个整数,分别赋值给l和k
C++里面”>>“和”<<“各是什么意思?
<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出zhi流。区别如下:1、应用场合不同:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性;正是因为...
Python里的>>>是什么意思?
概述:>>> 是什么:Python的交互式命令行环境的提示符 >>> 有什么意思:没有任何意思,只是起到提示的作用 详细介绍:你最常看到 >>> 的有2个地方:1.Python的shell:命令行交互环境 2.IDLE:Python自带的IDE 下面分别细说:比如我在Mac的终端中输入python,就进入了:Python的(交互式)shell 图...
C语言中,如何判断一个箱子是正方体还是长方体?
,&l,&w,&h);if(l==w==h)printf("该箱子是正方体。\\n");else printf("该箱子是长方体。\\n");return 0;} 问题分析:在输入if语句中的判断条件时,我输入的是“l=w=h”,运行报错了,数学运算符=与C语言中的赋值符号是不能窜通的,正确的是“l==w==h”时,运行成功了。
数据结构&L与L区别
在学c语言的时候,要想昂函数返回一个值,就要把这个函数的类型定义清楚,但是在数据结构的算法中,需要返回的不只一个值而且他们的类型又不一样,所以,加个&,该变量也能作为函数的返回值返回到主函数中,而不会因为是局部变量的关系在主函数中看不到变化,这是c++中的一种用法,面向对象的思想,...
initlist(&L)中的&L什么意思
一点说明,是C\/C++还是C 如果是C#应该在unsafe下的,是L对像的地址
c语言数据结构L与&L?
变量前有&,这里的形参L是引用类型,属于引用调用,引用是C++里的东西,不是C的 简单的说这里的形参L不再是实参的副本,而就是实参本身,在函数中对形参L做的任何操作都会反应在实参上 这里的L不是引用类型,标准的传值调用,形参L就是调用时实参的副本,所以在函数中对L的操作不会反应到实参上 ...
C语言中&L 和*L 的区别是什么?
一个是指针,一个是引用
*L和&L有什么区别
L是指针,用来指向一个链表,而&L是引用,即给一个变量取个别名。内容拓展:举个例子:sqlist 是一个结构体;sqlist *L 表示定义了一个指向sqlist类型的指针;&L 表示L的指针。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的...