C语言中“>>=,<<=,&=,^=,|=”分别表示什么意思?请举例说明
发布网友
发布时间:2024-05-01 19:53
我来回答
共5个回答
热心网友
时间:2024-05-01 22:22
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语言
热心网友
时间:2024-05-01 22:23
复合赋值。a>>=b相当于 a = a >> b; 以此类推。
a>>=b 表示把二进制a右移b位,比如:
即:
结果是1,再把右移结果赋值给a, 即最后a=1。
<<= 同上,只不过是左移赋值。
&= 是按位与之后赋值,^=是按位异或之后赋值,|=是按位或之后赋值。与,或以及异或的操作很简单:
<<= 同上,只不过是左移赋值。
&= 是按位与之后赋值,^=是按位异或之后赋值,|=是按位或之后赋值。与,或以及异或的操作很简单:
拓展资料
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
热心网友
时间:2024-05-01 22:23
复合赋值。a>>=b相当于 a = a >> b; 以此类推。
a>>=b 表示把二进制a右移b位,比如:
a = 8;
a >>= 3;
即:
二进制8: 00000000 00000000 00000000 00001000
右移3位: 00000000 00000000 00000000 00000001
结果是1,再把右移结果赋值给a, 即最后a=1。
另外,这是算术右移,如果右移的数是负数,用最高位符号位1来填充左边。你可以参考百度算术右移与逻辑右移。
<<= 同上,只不过是左移赋值。
&= 是按位与之后赋值,^=是按位异或之后赋值,|=是按位或之后赋值。与,或以及异或的操作很简单:
101010 101010 101010
& 011100 | 011100 ^ 011100
--------- ---------- ----------
001000 111110 110110
热心网友
时间:2024-05-01 22:24
a = 0010(0x02)
a >>= 1; (a 右移1位并把右移的结果重新赋值给a) 此时a = 0001(0x01);
a <<= 1;(a左移1位并把左移的结果重新赋值给a) 此时 a = 0100(0x04);
a &= 0x01;( a与0x01 按位与,并把按位与的结果重新赋值给a)。此时a = 0x0;
a |= 0x01;( a与0x01 按位或,并把按位或的结果重新赋值给a)。此时a = 0011(0x03);
a ^= 0x01;( a与0x01 按位异或,并把按位异或的结果重新赋值给a)。此时a = 0x03;(异或的意思就是,该位均为相同的则该位结果为0,该位均为不同的则该位结果为1)
热心网友
时间:2024-05-01 22:24
补充一个*操作,>>=用作除法取平均值。
假如for(;i<8;i++);i>>=3;结果为1,所以>>=3相当于除以8。
原理:我们知道,十进制下,每向每向右移1位,结果相当于除以10,在二进制下就相当于除以2,所以上面的代码相当于8/2^3,这个方法只能够用于求2的N次方(比如2、4、8、16、32……)的平均值,优点是效率比除法快(在没有硬件除法器的单片机上,和编译器优化也有关)。
当然,反过来,向左移位就是乘法了。
C语言中“>>=,<<=,&=,^=,|=”分别表示什么意思?请举例说明
1、C语言中的 >>= 意思为:右移后赋值 代码示例为:x = 8; x >>= 3;右移后结果为:00000000 00000000 00000000 00000001 2、C语言中的 <<= 意思为:左移后赋值 代码示例为:x = 8;x <<= 3;左移后赋值结果为:00000000 00000000 00000000 01000000 3、C语言中的 &= 意思为:按位与...
c语言中赋值语句,《=,&=,∧=,|=,分别是什么意思
|=:a|=b;//等价于a=a|b;|是按位或
c语言,位符合赋值运算子, =,&=,^=!=, 分别什么含义啊?
11.|= 按位或后赋值 变数|=表示式 参与运算的两个量按照对应位进行或运算,且 0|0→0, 0|1→1, 1|0→1, 1|1→1 这些位运算都是与二进位制码有关的,所以多弄弄也就会了 C语言中复合赋值运算子 :<<= , >>= ,&= ,^= , |= 分别表示什么啊 ? 请高手指点 运算子= 这种组合是赋值语句的一...
C语言中:&= 与等于, |=或等于,这两个表达式表示啥意思呢?
运算说明:1、op=的运算符是C语言中一大类运算符,所有的op=形式运算符,写作a op= b时,均等效于a=a op b;2、几乎所有的双目运算符,均有和赋值合并的op=运算符,包括+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=等;3、使用op=运算符,比使用a=a op b的形式要高效。4、位运算操作时...
c语言中的<=啥意思,i=(a+k)<=(i+k);又是不是一个赋值语句呢
<= 在C语言中为 少于等于(不大于),在C语言中比较运算符的结果为逻辑值,不是 TRUE(成立) 就是 FALSE(不成立)。上式为比较a+k与i+k的大小(实际也就是a与i的大小)。在这些变量是int型的情况下;若a+k>i+k,<=不成立,则i的值为0;反之,a+k<=i+k,则i的值为1.P.S: ...
C语言中c=a>>3是什么意思,>>好像是位运算符,请问有什么作用
>> 右移就是把这个数的末尾多少位去掉,如17>>3 表示 0001 0001 的最后3位去掉,就变成了 0000 0010 左移运算 左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如: a<<4 指把a的各二进位向...
c语言的运算符号 +,-,*,/,也就是数学里的+,-,*,/,?%,!,>=,<=,>,<
c语言中的符号其实和数学中的差别是有点的。1. 常用运算符 算术运算符: +, -, *, /,关系运算符: >, <, >=, <=, ==, != 逻辑运算符: !, &&, || 赋值运算符:=, +=, -=,*= ,/= ,++,-- 2.算术运算符: +,-,*没什么好说的,跟数学里边一样。/ 在C中称为 整除...
C语言中 (!a<b&&b!=c||x+y<=3是什么意思
1、!a<b 就是判断!a与b的大小,a是布尔类型的,将a转化成数值型和b比较,若!a大于b则表达式为true,否则表达式为false 2、b!=c 就是判断b与c的值是否相等,若相等表达式为false,否则表达式为true 3、 x+y<=3 判断x+y与3的值的大小,若x+y<=3则表达式为true,否则为false 这个bool...
C语言中“=>”的意思是什么?
C语言中“=>”的意思:lambda表达式,表示一个匿名函数,=>前面的是参数,后面的是函数体。你可以把它当作一个函数。举例说明:Func<int, int, int> Add = (x, y) => x + y;Console.WriteLine(Add(2, 3)); // 5
C++中>>是什么意思
“!=”:运算符,不等于的意思;“--”:运算符,表示一减一;“++”:运算符,表示一增一;“:”:分隔符,指明标号语句;“::”:语言的作用域运算符,当局部变量与全局变量同名时,在局部变量的作用域内,全局变量前面使用该运算符。“;”:分隔符,终止一条语句。“%“:运算符,模除...