×

c语言移位运算符 移位运算符 位运算符

C语言中位移位运算符?c语言中位运算的左位移右位移都是什么意思

admin admin 发表于2022-06-06 20:24:06 浏览102 评论0

抢沙发发表评论

C语言中位移位运算符


c语言位运算符包括 位逻辑运算符 和 移位运算符。
位逻辑运算符:&按位与,|按位或,^按位异或,~取反
移位运算符:《《左移,》》右移
-----------------------------------------------------------------------
&按位与运算符:二进制中运算,0&0=0,0&1=0,1&0=0,1&1=1,相当于布尔型的与运算
|按位或运算符:二进制中运算,0|0=0,0|1=1,1|0=1,1|1=1,相当于布尔型的或运算
^按位异或运算符:二进制中运算,0^0=0,0^1=1,1^0=1,1^1=0,0与0位异或等于0,1与1位异或等于0,1和0异或等于1
~取反运算符,二进制中运算:~1=0,~0=1,非1等于0(非真得假)非0等于1(非假得真)。

《《左移运算符:运算规则:把“《《“左边的运算数的各二进制位全部左移若干位,移动的位数由“《《“右边的数指定,高位丢弃,地位补0。可以实现乘法运算,二进制0000011《《2得二进制00001100.
》》右移运算符:运算规则:把“》》“左边的运算数的各二进制位全部右移若干位,移动的位数由“》》“右边的数指定。有符号的数右移时符号也随着右移;是正数的话在最高位补0,是负数的话,符号位为1,最高位补0还是补1决取于计算机系统的规定。移入0的称为“逻辑右移“,移入1的称为“算术左移”。很多系统规定为补1,即“算术右移”。右移运算可以实现除法的功能,右移1位相当于该数除以2,右移n位相当于该数除以2的n次方。
-------------------------------------------------------------------------
运算符 优先级 运算符类型
& 8 双目
| 10 双目
^ 9 双目
~ 2 单目
《《 5 双目
》》 5 双目
---------------------------------------------------------------------------

c语言中位运算的左位移右位移都是什么意思


假设0010
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0。
0010《《2 就是1000 实际是做的*4。
1000》》2 计算 0010 实际做的是/4。

位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。
位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。

移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)。具体移位规则如下所示。

位移位运算符的优先级如下:
·算术运算符 优先于 位移位运算符 优先于 关系运算符
·位移位运算符是同级别的,结合性是自左向右
例如,设无符号短整型变量a为0111(对应二进制数为0000000001001001),
则:a《《3 结果为01110(对应二进制数为0000001001001000),a不变
a》》4 结果为04 (对应二进制数为0000000000000100),a不变
又如,设短整型变量a为-4(对应二进制数为1111111111111100),
则:a《《3 结果为-32(对应二进制数为1111111111100000),a不变
a》》4 结果为-1(对应二进制数为1111111111111111),a不变-位运算符


verilog中移位操作符号


verilog中移位操作符号有2种,分别是“《《”左移位运算符和“》》”右移位运算符。

格式如下:a《《n,a》》n。其中,a代表要移位的操作数,n代表要移几位。两种运算方式都用0来填补移出的空位。

移位操作符对左边的操作数进行向左或向右的位移位操作,第二个操作数,移位位数是无符号数,遵循的操作规律是“左移时先补后移,右移时先移后补”。

在进行移位运算时,应当注意移位前后变量的位数。如果操作数已经定义了位宽,则进行移位后操作数改变,但是其位宽不变。

扩展资料

verilog HDL运算符

1、逻辑运算符:&&逻辑与;||逻辑或;!逻辑非。

2、关系运算符:《小于、》大于、《=小于等于、》=大于等于。

3、等式运算符:==等于、!=不等于、===等于、!==不等于。

4、移位运算符:《《左移位、》》右移位。

5、位拼接运算符:{a1,a2,a3.......}

6、缩减运算符:先将操作数的第一位与第二位进行与、或、非运算,然后将结果与第三位进行与、或、非运算,依次类推,直至最后一位。

参考资料来源:《Verilog数字系统设计教程 【第3版】》 夏宇闻  编著  北京航空航天出版社

第4章  运算符、赋值语句和结构说明语句  4.4 移位运算符

参考资料来源:百度百科--Verilog HDL