位运算
1.按位与&
(二进制)两个数都为1,结果为1.
15&1=00001111
& 00000001
00000001
=1
2.按位或|
(二进制)两个数中有一个为1则为1
15|127=00001111
| 011111111
= 011111111
=127
3.按位异或^
相同位为0,不同位为1.
3^ 5=00000011
^ 00000101
=00000110
=6
4.按位取反~
~5=-6;
00000101
111111010
=-6
5.左移位<<
左边丢弃,右边补0
左移时在最高位的1移出时次高位还为1时,会有倍数关系,注意不要将一个数的所有位都移出,否则编译器可能会报错
6.右移>>
由于右移时会向最高位补数,但是最高位对有符号数来说是符号位,0代表正数,1代表负数,所以右移时会区分是算数右移还是逻辑右移,不同的编译器会做不同的右移
相关文章
- 03-26常见的运算符
- 03-26C 语言结构体之点运算符( . )和箭头运算符( -> )的区别
- 03-26运算符、包机制与部分Scanner对象方法
- 03-26每部分分别用高两位的MSB
- 03-26【洛谷日报#26】GCC自带位运算系列函数
- 03-26LeetCode--190--颠倒二进制位
- 03-2675 扩展运算符的自动转换
- 03-2623. 位运算,位字段
- 03-26运算符数据类型的时间对于加法运算符无效
- 03-26day04_常见的运算符