位运算
Page 1 of 1
位运算
位运算中有好几种,其中包括
1.逻辑左移
2.逻辑右移
3.与运算(&)
4.或运算(|)
5.异或运算(^)
1.逻辑左移
在二进制的右边加上n个0,左边溢出的拿掉
比如
int x = 60
x = x<<2; //逻辑左移2个位,(其实答案出来就是x * 2^2)
60的二进制是 0011 1100 ,在右边加上2个0,左边溢出的拿掉
001111 0000
---
加2个0,然后把左边多出来的2个0拿掉
结果出来是
1111 0000
这时换去2进制就是240,相等于60 * 2^2
2.逻辑右移
在二进制的左边加上n个0,右边溢出的拿掉
比如
int x = 60
x = x>>2; //逻辑右移2个位,(其实答案出来就是x / 2^2)
60的二进制是 0011 1100 ,在左边加上2个0,右边溢出的拿掉
0000 111100
---
加2个0,然后把右边多出来的2个0拿掉
结果出来是
0000 1111
这时换去2进制就是15,相等于60/2^2
3.与运算 ' & ' 操作符
c = a & b;
a = 1 0 1 1 0 0 1 //a 和 b都是1就是1
b = 0 0 1 1 0 1 0
-----------------
c = 0 0 1 1 0 0 0
4.或运算 ‘ | ’ 操作符
c = a | b;
把2个 二进制号码 合起来变成一个二进制号码
a = 0 1 0 0 1 1 0 //只要a或b中有一个是1(true), 结果出来就会是1
b = 1 1 0 0 0 1 0
-----------------
c = 1 1 0 0 1 1 0
5.异或运算 ' ^ '操作符
c = a ^ b
把2个 二进制号码 合起来变成一个二进制号码
a = 1 1 0 1 0 1 0 //a 和 b 一样的话就是0,不一样就是1
b = 0 1 0 0 1 1 0
------------------
c = 1 0 0 1 1 0 0
1.逻辑左移
2.逻辑右移
3.与运算(&)
4.或运算(|)
5.异或运算(^)
1.逻辑左移
在二进制的右边加上n个0,左边溢出的拿掉
比如
int x = 60
x = x<<2; //逻辑左移2个位,(其实答案出来就是x * 2^2)
60的二进制是 0011 1100 ,在右边加上2个0,左边溢出的拿掉
001111 0000
---
加2个0,然后把左边多出来的2个0拿掉
结果出来是
1111 0000
这时换去2进制就是240,相等于60 * 2^2
2.逻辑右移
在二进制的左边加上n个0,右边溢出的拿掉
比如
int x = 60
x = x>>2; //逻辑右移2个位,(其实答案出来就是x / 2^2)
60的二进制是 0011 1100 ,在左边加上2个0,右边溢出的拿掉
0000 111100
---
加2个0,然后把右边多出来的2个0拿掉
结果出来是
0000 1111
这时换去2进制就是15,相等于60/2^2
3.与运算 ' & ' 操作符
c = a & b;
a = 1 0 1 1 0 0 1 //a 和 b都是1就是1
b = 0 0 1 1 0 1 0
-----------------
c = 0 0 1 1 0 0 0
4.或运算 ‘ | ’ 操作符
c = a | b;
把2个 二进制号码 合起来变成一个二进制号码
a = 0 1 0 0 1 1 0 //只要a或b中有一个是1(true), 结果出来就会是1
b = 1 1 0 0 0 1 0
-----------------
c = 1 1 0 0 1 1 0
5.异或运算 ' ^ '操作符
c = a ^ b
把2个 二进制号码 合起来变成一个二进制号码
a = 1 1 0 1 0 1 0 //a 和 b 一样的话就是0,不一样就是1
b = 0 1 0 0 1 1 0
------------------
c = 1 0 0 1 1 0 0
too wei- Sponsor
- Posts : 31
Points : 65391
Reputation : 0
Join date : 2015-04-21
Age : 25
Location : Johor
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|