^ Operatörü Java ne yapar?
Ne işlevi "" operatör Java hizmet? ^ mu
Bu deneyin:
int a = 5^n;
...bana verir:
n = 5, 0 değerini döndürür
n = 4, 1 döndürür
n = 6, 3 döndürür
...üs olduğunu göstermez sanırım. Ama o zaman nedir?
CEVAP
Java ^ operatör
Java 6 ** özel-veya ("") xor operatörü.
Hadi örnek olarak 5^6
:
(decimal) (binary)
5 = 101
6 = 110
------------------ xor
3 = 011
Bit için doğruluk tablosu (JLS 15.22.1) ve mantıksal (JLS 15.22.2) Bu xor:
^ | 0 1 ^ | F T
-- ----- -- -----
0 | 0 1 F | F T
1 | 1 0 T | T F
Daha basit, ayrıca "bu . xor olarak düşünebilirsiniz ^em>yaamaikisi de değil".!
Ayrıca Bkz
Java'da üs
Tamsayı için üs olarak, ne yazık ki Java böyle bir operatör yok. double Math.pow(double, double)
(gerekirse int
sonuç döküm) kullanabilirsiniz.
Ayrıca geleneksel bit Kaydırma Numara iki bazı güçler hesaplamak için kullanabilirsiniz. Bu iki o (1L << k)
kk=0..63
- inci güç.
Ayrıca Bkz
Not birleştirmebu cevap birleştirilmiş başka bir soru nereye niyeti kullanmak üs dönüştürmek dize
"8675309"
int
kullanmadanInteger.parseInt
gibi bir programlama egzersiz (^
gösterir beyan etme artık). OP niyeti8*10^6 6*10^5 7*10^4 5*10^3 3*10^2 0*10^1 9*10^0 = 8675309
; bu cevap bir sonraki bölümü üs bu görev için gerekli olmadığını adreslerini hesaplamak için.
Horner şeması
Derdinizözelgerek, aslında 10 çeşitli güçler hesaplamak için gerek yok. Bu denilen şey kullanabilirsiniz, ama aynı zamanda en basit ve etkin olmayan Horner's scheme,.
Kişisel bir egzersiz olarak bu yaptığın bu yana, Java kod vermem, ama burada ana fikir:
8675309 = 8*10^6 6*10^5 7*10^4 5*10^3 3*10^2 0*10^1 9*10^0
= (((((8*10 6)*10 7)*10 5)*10 3)*10 0)*10 9
İlk başta karmaşık görünebilir, ama gerçekten değil. Temelde basamak sağdan sola doğru okunur ve neden şimdiye kadar bir sonraki basamak eklemeden önce 10 ile çarpın.
Tablo şekli:
step result digit result*10 digit
1 init=0 8 8
2 8 6 86
3 86 7 867
4 867 5 8675
5 8675 3 86753
6 86753 0 867530
7 867530 9 8675309=final
= Operatörü Java...
Java mı anahtar kelime iddia, ne yapar...
Java zor bir üçlü operatörü - autoboxi...
İyi uygulama Boole kontrolleri için Ja...
Nasıl Virgül Operatörü iş yapar...