位运算

在ECMAScript中所有的运算都是64位格式进行存储的,但位运算操作符不直接操作64位的值,而是先将64位的值转换成32位的整数,然后执行操作,最后再将结果转换成64位。而对于开发过程中,所有的64操作是透明的,所以位运算也就是指的是32位的二进制的运算;

下面的引用一些常用的位运算例子:

位运算,顾名思义:是通过把数转换成二进制,然后通过操作他们的位置进行运算;

 1,左移(<<)运算符

      32位中最右边也就是位31,是不能进行移动的,它是作为符号标志,数值左移n位:是指当前的数字乘以2的n次幂

 

 

.乘以2运算

[cpp]  view plain copy
  1. int mulTwo(int n){//计算n*2   
  2.     return n << 1;  
  3. }  

乘以2的m次方

[cpp]  view plain copy
  1. int mulTwoPower(int n,int m){//计算n*(2^m)  
  2.     return n << m;  
  3. }  

 

 

 

计算2的n次方

[cpp]  view plain copy
  1. int getFactorialofTwo(int n){//n > 0  
  2.     return 2 << (n-1);//2的n次方  
  3. }  

 

 

2,右移(>>)运算符

求两个整数的平均值

[java]  view plain copy
  1. int getAverage(int x, int y){  
  2.         return (x + y) >> 1;   
  3. }  

除以2运算

[cpp]  view plain copy
  1. int divTwo(int n){//负奇数的运算不可用  
  2.     return n >> 1;//除以2  

除以2的m次方

[cpp]  view plain copy
  1. int divTwoPower(int n,int m){//计算n/(2^m)  
  2.     return n >> m;  
  3. }  

3,非(~)运算符

涉及到n+1,或者是求一个数的相反数,都应该首先想到非运算符,它本身的运算就相当于一个数的相反数减去1;

计算n+1

[cpp]  view plain copy
  1. -~n  

计算n-1

[cpp]  view plain copy
  1. ~-n  

 

取相反数

[java]  view plain copy
  1. ~n + 1;  

 

3,与或(^)运算符

不用临时变量交换两个数

[java]  view plain copy
  1. a ^= b;  
  2. b ^= a;  
  3. a ^= b;  

4,与(&)运算符

 

判断一个数的奇偶性

[java]  view plain copy
  1. boolean isOddNumber(int n){  
  2.     return (n & 1) == 1;  
  3. }  

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值