オペレータ用Javaペンの質問
オペレータ用Javaペンの質問
1.&と&&の違い
アンド論理演算を用いてのみ&&ビット単位の論理演算と考えることができると考えられ
、以下の相違ときに、2つのシンボルは、論理演算子として使用される場合
、最終的な結果が真の前後&2つの条件が真である
&&短絡そして&同じ結果と正常に行わ
偽後ろ短絡の結果&&発現を行わない場合、現在の表面状態のが偽であります
2. 2つの* 8つの結果を計算するための最も効率的な方法
00000010 *最も効率的な方法<< 2 3 3のパワーに2を乗じ2に相当
0,000,100,000,000,010
0,000,000,000,010,000 ----> 16
00000000乗数がちょうど2電源である
00000000
00000010000 - > 16
INT A = 1~3二つの変数、int型、B = 2、どのように二つの変数のスワップ値に
int a = 1;
int b = 2;
//方式一 采用一个中间变量空间
int c = a;
a = b;
b = c;
好处是比较容易理解 值也不会出现问题 不好在于产生了一个新的内存空间
//方式二 利用两个数字的和
a = a + b; //a空间存储的是两个元素的和3 b没有变化
b = a - b; //利用两个元素的和减原来的b 剩下的是原来的a b==1 a==3
a = a - b; //利用两个元素的和 减b(原来a的值1) 剩下原来b的值赋值给a b==1
/*好处是省略了一个新的空间
不好在于
第一个:相对来讲不是很容易理解
第二个:可能会在+产生值越界
//方式三
a=a ^ b; 1^2====> 001
010
011====>3^2 ====>
010
001===>1
1^2^2==>1 一个数字异或同一个数字两次 值不会改变
a==异或的中间值3 b==2
b=a ^ b;a==异或的中间值3 b==1;
a=a ^ b;3^1 a==2 b==1