第二章 java基础(按位运算符)

—— 本文参照 Learn Java for Android Development (第三版)

赋值运算符
赋值运算符顾名思义就是把值赋给变量的。例如:int x = 4;这里等号两边的类型必须是一样的,否则就会报错。
Java还支持符合赋值,举个例子:pennies += 50;这个表达式其实等价于pennies = pennies+50.其他的复合运算符的原理跟这个是一样的。

位运算符
位运算包括:按位与(&)、按位取反(~)、按位异或(^)、按位或运算(|).这些操作都是用来对二进制形式的数据操作的,所以如果之前没有使用过这些运算符的话可看看下面的例子:
public class operatorTest
{
public static void main(String[] args)
{
System.out.println(~181);
System.out.println(26 & 183);
System.out.println(26 ^ 183);
System.out.println(26 | 183);
}
}
编译执行这段代码:
javac operatorTest.java
java operatorTest
打印结果如下:
-182
18
173
191
只看结果好像是看不出什么的,下面详细解释一下这个结果是怎么来的。我们先将所有的操作数转化为32位的二进制看看:
181 相当于 00000000000000000000000010110101
26 相当于 00000000000000000000000000011010
183 相当于 00000000000000000000000010110111
181按位取反得到的是11111111111111111111111101001010.因为最高位是符号位,如果最高位是1的话就表示负数。所以~181的结果是-182。
再看26&183
00000000000000000000000000011010
&
00000000000000000000000010110111

00000000000000000000000000010010
得到的结果就是18
26^183的结果如下:
00000000000000000000000000011010
^
00000000000000000000000010110111

00000000000000000000000010101101
结果是173
26|183的结果如下:
00000000000000000000000000011010
|
00000000000000000000000010110111

00000000000000000000000010111111
答案是191.

Page 58

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,026评论 18 399
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,538评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,947评论 0 2
  • Java运算符: 目录:1.算术运算符2.位运算符3.赋值运算符4.比较运算符5.逻辑运算符6.三目运算符7.运算...
    Ansaxnsy阅读 10,591评论 4 3
  • 也许,我想的太多了,都分开了,何必要留念 也许,我应该忘记你,都分开了,何必要去想 也许,我做不到忘记,都分开了,...
    染情阅读 1,131评论 1 2