A. java 位運算符和邏輯運算符,有什麼區別,&和&&
true
=
1
false
=
0
再看下面這段文字
一、邏輯運算符:
包括:1。&&邏輯與
2。||邏輯或
3。!邏輯非
邏輯運算符用於對包含關系運算符的表達式進行合並或取非
對於使用邏輯運算符的表達式,返回0表示「假」,返回1表示「真」。關於邏輯運算符的解釋
請注意:任何使用兩個字元做符號的運算符,兩字元之間不應有空格,即將==寫成=
=是錯誤的。
假設一個程序在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關系運算符和邏輯運算符「與」來寫這個
條件的代碼。用&&表示「與」運算符,該條件代碼如下:
(a<10)
&&
(b==7);
類似地,「或」是用於檢查兩個條件中是否有一個為真的運算符。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程序需執行某些操作,則條件代碼如下:
(a<10)
||
(b==7);
第三個邏輯運算符「非」用一個感嘆號(!)表示。這個運算符對表達式的真值取反。例如,如果變數s小於10,程序
程序需執行某些操作,則條件代碼如下:
(s<10)
或
(!(s>=10))
//s不大於等於10
關系運算符和邏輯運算符的優先順序一般都低於算術運算符。例如,5>4+3的計算與5>(4+3)運算符是一樣的,即
先計算4+3,再執行關系運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出
0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
二、位運算符:
包括:1。&位與符
2。|位或符
3。^位異或符
4。~位取反符
以操作數12為例。位運算符將數字12視為1100。位運算符將操作數視為位而不是數值。數值
可以是任意進制的:十進制、八進制或十六進制。位運算符則將操作數轉化為二進制,並相應地返回1或0。
位運算符將數字視為二進制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:
表達式10&15表示(1010
&
1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1
表達式10|15表示(1010
|
1111),它將返回表示1111的值15。假假得假。全零得零。
表達式10^15表示(1010
^
1111),
它將返回表示0101的值5。此時是同性相斥,相同的就為假。
表達式~10表示(~1010),它將返回表示0101的值
-11。此號好理解,按位取反
B. 用JAVA將十進制轉換成十六進制
1、用Integer.toHexString方法即可將十進制裝成十六進制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
C. Java里的十二進制,六進制,二進制,分別怎麼轉換
轉換為2的幾何級數倍進制比較容易,其他的就不方便了。
先說和10進制的轉換:
倒序將2進制數編冪數,例如10101010從後向前冪數依次為7654321,所以它轉換為10進制就是1*2^7+0*2^6+1*2^5+0^2^4+1*2^3+0^2^2+1^2^1+0^2^0=170,這種演算法適用於將任意進制轉換為10進制,只要將底數替換即可。
下面說2的幾何級數倍的演算法:
一般就是將2進制按2的級數進行分段,比方說8進制(8是2的3次方),將2進制分為每3位一段進行轉換,每段單獨按十進制轉換即可。
10101010,分為10|101|010,然後每段進行單獨轉換,10轉換後為2,101轉換後為5,010轉換後為2,所以10101010(2)=252(8)。
其他進制一般演算法就是先將2進制轉換為10進制,再用短除法轉換為其他進制,短除法我記不清怎麼個演算法了,並不是算公約數之類的那個短除法,借位演算法比較特殊,只不過最後余數作為最後一位。
例如170(10)進制就使用170=332(7)
D. java中怎麼將十進制轉換為十六進制
用除商取余法
用十進制數除以16 記錄下商和余數
然後繼續用商去除以16記錄下商和余數,直到商為0
最後將余數逆序排列就可以了
比如十進制數33轉為十六進制
33/16=2 餘1
2/16=0 餘2
結果就是0x 21(十六進制以0x開頭)
E. 編寫將任意二進制數轉換為十進制數的java程序
java有現成的
二進制轉十進制
Integer.valueOf("0101",2).toString()
另外還有
十進制轉成十六進制:
Integer.toHexString(int i)
十進制轉成八進制
Integer.toOctalString(int i)
十進制轉成二進制
Integer.toBinaryString(int i)
十六進制轉成十進制
Integer.valueOf("FFFF",16).toString()
八進制轉成十進制
Integer.valueOf("876",8).toString()