逻辑运算符<<和>>的详细分析

左移运算符(<<)

左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负

值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。
例如:将a的二进制数左移2位,右边空出的位补0,左边溢出的位舍弃。若a=15,即00001111(2),左移2

位得00111100(2)。
源代码:
#include <stdio.h>
main()
{
int a=15;
printf("%d",a<<2);
}
左移1位相当于该数乘以2,左移2位相当于该数乘以2*2=4,15<<2=60,即乘了4。但此结论只适用于该

数左移时被溢出舍弃的高位中不包含1的情况。
    假设以一个字节(8位)存一个整数,若a为无符号整型变量,则a=64时,左移一位时溢出的是0

,而左移2位时,溢出的高位中包含1。


右移运算符(>>)
右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负

值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分

用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。注

意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移

入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的

系统移入1。移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。 
例: a的值是八进制数113755: 
   a:1001011111101101 (用二进制形式表示)
   a>>1: 0100101111110110 (逻辑右移时)
   a>>1: 1100101111110110 (算术右移时)
   在有些系统中,a>>1得八进制数045766,而在另一些系统上可能得到的是145766。Turbo C和其他一些C

编译采用的是算术右移,即对有符号数右移时,如果符号位原来为1,左面移入高位的是1。
源代码:
#include <stdio.h>
main()
{
int a=0113755;
printf("%d",a>>1);
}


 

  1. 左移和右移的位数是不能超出数据的长度
  2. 也不能小于0

### 回答1: JavaScript中的比较操作符主要用于比较两个值的大小或者判断两个值是否相等。常见的比较操作符有以下几种: 1. 相等比较:使用双等号(==)进行比较。比较时会先进行类型转换,再比较值是否相等。如果两个值的类型不同,会进行隐式类型转换,然后再进行比较。 2. 全等比较:使用三等号(===)进行比较。与相等比较不同的是,全等比较不会进行类型转换。只有当两个值的类型和值都相等时,才会返回true。 3. 不等比较:使用叹号加等号(!=)进行比较。与相等比较相反,如果两个值不相等,返回true。 4. 不全等比较:使用叹号加双等号(!==)进行比较。与全等比较相反,只有当两个值的类型或者值不相等时,才会返回true。 5. 大于、小于和等于比较:使用大于(&gt;)、小于(&lt;)、大于等于(&gt;=)、小于等于(&lt;=)进行比较。这些操作符用于判断两个值的大小关系。比较时会对值进行隐式类型转换,然后再进行比较。 比较操作符在JavaScript中是十分重要的,可以用于控制流程、判断条件和进行数值的比较。在进行比较时,我们需要注意值的类型和进行明确的类型转换,以保证比较结果的准确性。 ### 回答2: Javascript 中的比较操作符用于比较两个值之间的关系,并返回布尔值 true 或 false。以下是一些常见的比较操作符: 1. 相等比较(==):检查两个值是否相等。如果相等,则返回 true,否则返回 false。该操作符会进行类型转换,因此可能会产生意外的结果。 2. 全等比较(===):检查两个值是否严格相等。除了值相等外,还要求它们的类型也相同。如果相等,则返回 true,否则返回 false。 3. 不相等比较(!=):检查两个值是否不相等。如果不相等,则返回 true,否则返回 false。同样,该操作符会进行类型转换。 4. 不全等比较(!==):检查两个值是否严格不相等。除了值不相等外,还要求它们的类型也不同。如果不相等,则返回 true,否则返回 false。 5. 大于比较(&gt;):判断第一个值是否大于第二个值。如果是,则返回 true,否则返回 false。 6. 小于比较(&lt;):判断第一个值是否小于第二个值。如果是,则返回 true,否则返回 false。 7. 大于等于比较(&gt;=):判断第一个值是否大于等于第二个值。如果是,则返回 true,否则返回 false。 8. 小于等于比较(&lt;=):判断第一个值是否小于等于第二个值。如果是,则返回 true,否则返回 false。 除了普通的比较操作符外,Javascript 还提供了一些其他的比较操作符,例如逻辑与比较(&&)、逻辑或比较(||)和三元条件比较(? :)。这些操作符可以用于更复杂的比较逻辑。需要注意的是,在使用比较操作符时,要注意类型转换和运算符优先级,以避免产生错误的比较结果。 ### 回答3: 在JavaScript中,比较操作符用于比较两个值,并返回一个布尔值,即true或false。在比较操作符中常用的有以下几种: 1. 等于运算符(==): 用于比较两个值是否相等。它会先进行类型转换,然后比较值是否相等。如果两个值类型相同且值相等,返回true;否则返回false。 2. 不等运算符(!=): 用于比较两个值是否不相等。它先进行类型转换,然后比较值是否不相等。如果两个值类型相同且值不相等,返回true;否则返回false。 3. 全等运算符(===): 用于比较两个值是否严格相等。它不进行类型转换,要求两个值类型完全相同且值相等。如果满足这两个条件,返回true;否则返回false。 4. 不全等运算符(!==): 用于比较两个值是否不严格相等。它不进行类型转换,要求两个值类型完全相同且值不相等。如果满足这两个条件,返回true;否则返回false。 5. 大于运算符(&gt;): 用于比较两个数值的大小关系。如果左侧数值大于右侧数值,则返回true;否则返回false。 6. 小于运算符(&lt;): 用于比较两个数值的大小关系。如果左侧数值小于右侧数值,则返回true;否则返回false。 7. 大于等于运算符(&gt;=): 用于比较两个数值的大小关系。如果左侧数值大于等于右侧数值,则返回true;否则返回false。 8. 小于等于运算符(&lt;=): 用于比较两个数值的大小关系。如果左侧数值小于等于右侧数值,则返回true;否则返回false。 这些比较操作符在JavaScript中非常常用,在控制流语句、条件判断和循环结构中都可以使用。通过比较操作符,我们可以进行值的判断和条件的选择,从而实现不同的逻辑控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值