左移位赋值与右移位赋值有何计算规律

2020-11-22 21:18:06 字数 6946 阅读 9476

1楼:

左移一位等于乘2,右移一位等于除2。

左移2位等于乘2的2次方,右移一位等于除2的2次方。

左移n位等于乘2的n次方,右移一位等于除2的n次方。

例如:0000 1100 -- 10进制12左移一位 0001 1000 -- 10进制24右移一位 0000 0110 -- 10进制6

2楼:雨落深山

b <<= a; 等价于 b = b << a;

b >>= a; 等价于 b = b >> a;

<<= 左移位赋值 >>= 右移位赋值,怎么使用?

3楼:高端局

要先将这个数换算成2进制的数,然后再进行移位。

i = 2;//二进制表示为10。

i << = 1;//表示i 左移一位。现在为100。

所以现在i = 4。

4楼:匿名用户

i = 2;

i <<= 1;//i为4

i >>= 2;//i为1

c++语言中左移位赋值是什么意思

5楼:四舍**入

例如:m = 1;

m <<= 2;意思就是把m左移两位后,再赋值给m。原来m的二进制数值是0001,左移两位后就变成了二进制的0100,也就是十进制的4,所以结果是m=4。

所以可以看出左移一位,相当于原来的数值乘以2,左移n位,就相当于乘以了2的n次方。

6楼:

给你举个例子

m = 1;

m <<= 2;意思就是把m左移两位后,再赋值给m。原来m的二进制数值是0001,左移两位后就变成了二进制的0100,也就是十进制的4,所以结果是m=4

所以可以看出左移一位,相当于原来的数值乘以2,左移n位,就相当于乘以了2的n次方

左移赋值 有符号右移赋值 无符号右移赋值 分别什么意思?请举例说明,越详细越好啊

7楼:匿名用户

有符号数和无符号数,主要是将数据转成2进制后,第一位的意义,有符号数第一位为符号位,1表示负数,0表示整数。无符号数第一位都是0

赋值运算符的意思

8楼:學雅思

赋值运算符的意思是将运算符右侧的对象或者数值传递给左侧的对象或者变量。

基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。

赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。

扩展资料赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些值例如大数组。

1、= 赋值运算符:变量=表达式如:a=3;将a的值赋为32、/= 除后赋值:

变量/=表达式 如:a/=3;即a=a/33、*= 乘后赋值:变量*=表达式 如:

a*=3;即a=a*34、%= 取余后赋值:变量%=表达式 如:a%=3;即a=a%35、+= 加后赋值:

变量+=表达式 如:a+=3;即a=a+36:-= 减后赋值:

变量-=表达式如:a-=3;即a=a-3

9楼:哇哎西西

1、=赋值运算符:变量=表达式,如:a=3,将a的值赋为3;

2、/= 除后赋值:变量/=表达式,如:a/=3,即a=a/3;

3、*= 乘后赋值:变量*=表达式,如:a*=3,即a=a*3;

4、%= 取模后赋值:变量%=表达式,如:a%=3,即a=a%3;

5、+= 加后赋值:变量+=表达式,如:a+=3,即a=a+3;

6、-= 减后赋值:变量-=表达式,如:a-=3,即a=a-3。

10楼:匿名用户

a+=b 等同于 a = a+b

a-=b 等同于 a = a-b

a*=b 等同于 a = a*b

a/=b 等同于 a = a/b

a%=b 等同于 a = a%b

a&=b 等同于 a = a&b &表示按位与a>>=b 等同于 a = a>>b >>表示右移a<<=b 等同于 a = a<

一开始可能会以为它是“等于”,其实不是的。它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。

所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们现在是用变量作左值,以后还可以看到,指针和引用也可以作左值。

复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。

例如:i=i+j;可表示为 i+=j;这里+=是复合赋值运算符。

同样的共有10种这样的运算符,它们是:

+= 加赋值;

-= 减赋值;

*= 乘赋值;

/= 除赋值;

%= 求余赋值;

&= 按位与赋值;

| = 按位或赋值;

^= 按位异或赋值;

<<= 左移位赋值;

>>= 右移位赋值。

11楼:匿名用户

是将=后的数字与前面进行运算后复制给前面的变量a+=b相当于a=a+b的意思

至于复合位运算符也是一样的,数据进行与或非后进行赋值!

赋值运算符的分类

12楼:

一开始可能会以为它是“等于”,其实不是的。它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。

所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们现在是用变量作左值,以后还可以看到,指针和引用也可以作左值。

例如:int a, b, c;

a=3;

b=4;

c = ( a + b )*(2*a - b) // 得出14

php赋值运算符

基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。

赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。这样就可以做一些小技巧:

$a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。

?>

在基本赋值运算符之外,还有适合于所有二元算术和字符串运算符的“组和运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如:

$a = 3;

$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;

$b = hello ;

$b .= there!; // sets $b to hello there!, just like $b = $b . there!;

?>

注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些值例如大数组。自 php 4 起支持引用赋值,用 $var = &$othervar; 语法,但在 php 3 中不可能这样做。

引用赋值意味着两个变量都指向同一个数据,没有任何数据的拷贝。有关引用的更多信息见引用的说明。 复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。

例如:i=i+j;可表示为 i+=j;这里+=是复合赋值运算符。

同样的共有10种这样的运算符,它们是:

+= 加赋值

-= 减赋值

*= 乘赋值

/= 除赋值

%= 求余赋值

&= 按位与赋值

| = 按位或赋值

^= 按位异或赋值

<<= 左移位赋值

>>= 右移位赋值

<> 当右操作数又是一个赋值表达式时,形成多重赋值表达式。例如:

i=j=0; //结果i、j的值都为0 变量 双目运算符=表达式

它等效于

变量=变量 运算符 表达式

例如:a+=5 等价于a=a+5

x*=y+7 等价于x=x*(y+7)

r%=p 等价于r=r%p

verilog中移位操作符号

13楼:津人依梦聊理财

verilog中移位操作符号有2种,分

别是“<<”左移位运算符和“>>”右移位运算符。

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

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

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

扩展资料

verilog hdl运算符

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

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

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

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

5、位拼接运算符:

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

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

14楼:修罗犬夜

比如你定义一个寄存器型变量a

reg [3:0]a;

a<=a<<1;(这是让a左移一位的表示方法)a<=a>>1;(这是让a右移一位的表示方法)《表示左移,后面跟着的数字表示移位的位数。

>>表示右移,后面跟着的数字表示移位的位数。

15楼:匿名用户

verilog的位移结果的宽度是左操作数的宽度,同理elaboration只影响左操作数。

例如:reg [8:0] b;

reg [4:0] c;

b + (c << 1);

elaboration 的结果是:

b + ( << 1)

如果左操作数含有x数值x会随右操作数数值位移,不会全部变x。

例如:3’b0x1 << 1 的结果是: 3‘bx10如果右操作数含有x数值结果会变成全x。

例如:3’b000 << 2'b0x 的结果是:3‘b***综合时根据右操作数的类型的不同会生成不同的电路如果右操作数是常数生成的电路只有连线。

例如:reg [3:0] a;

a << 1;

生成:但如果右操作数是变量则会不同。

reg [1:0];

wire b;

a << b;

生成多路选择器:

16楼:匿名用户

<<和>>对一个数分别进行左移位和右移位,默认不做符号位扩展,用零补。

17楼:匿名用户

wire [3:0] dat_in;

wire [3:0] dat_out;

assign dat_out = ; // 循环左移1位

c语言,位符合赋值运算符, <<=,>>=,&=,^=,!=, 分别什么含义啊?

18楼:

1.= 赋值运算符 变量

=表达式 如:a=3;将a的值赋为3

2./= 除后赋值 变量/=表达式 如:a/=3;即a=a/3

3.*= 乘后赋值 变量*=表达式 如:a*=3;即a=a*3

4.%= 取模后赋值 变量%=表达式 如:a%=3;即a=a%3

5.+= 加后赋值 变量+=表达式 如:a+=3;即a=a+3

6.-= 减后赋值 变量-=表达式 如:a-=3;即a=a-3

7.<<= 左移后赋值 变量<<=表达式 左移就是将《左边的数的二进制各位全部左移若干位,《右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方

8.>>= 右移后赋值 变量》=表达式 右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。

注意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。

有的系统移入0,有的

系统移入1。移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。

9.&= 按位与后赋值 变量&=表达式 按位与是指:参加运算的两个数据,按二进制位进行“与”运算。

如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其实与逻辑上“与”的运算规则一致。

逻辑上的“与”,要求运算数全真,结果才为真。若,a=true,b=true,则a∩b=true

10. ^= 按位异或后赋值 变量^=表达式 参与运算的两个量按照对应的位进行异或运算,且

0^0→0, 0^1→1, 1^0→1, 1^1→0

此外,一个数与0异或仍保持不变,即a^0=a

一个数与自己异或结果为0,即a^a=0

11.|= 按位或后赋值 变量|=表达式 参与运算的两个量按照对应位进行或运算,且

0|0→0, 0|1→1, 1|0→1, 1|1→1

这些位运算都是与二进制码有关的,所以多弄弄也就会了