Συνιστάται, 2021

Επιλογή Συντάκτη

Διαφορά μεταξύ & & &&

Οι λέξεις "&" και "&&" είναι οι χειριστές που χρησιμοποιούνται για την αξιολόγηση των δηλώσεων υπό όρους. Ο χειριστής & είναι ένας λογικός καθώς και ένας bitwise χειριστής. Ο && χειριστής είναι καθαρά λογικός χειριστής. Η βασική διαφορά μεταξύ του χειριστή & && είναι ότι ο χειριστής & εκτιμά τις δύο πλευρές της έκφρασης ενώ ο && ο χρήστης αξιολογεί μόνο την αριστερή πλευρά της έκφρασης για να πάρει το τελικό αποτέλεσμα. Ας κατανοήσουμε τις άλλες διαφορές μεταξύ & & && με τη βοήθεια του πίνακα σύγκρισης.

Συγκριτικό διάγραμμα

Βάση σύγκρισης& &&&
ΧειριστήςΠρόκειται για ένα "Bitwise Operator".Είναι ένας "λογικός χειριστής".
ΕκτίμησηΑξιολογεί την αριστερή και τη δεξιά πλευρά της έκφρασης.Αξιολογεί μόνο την αριστερή πλευρά της έκφρασης.
ΛειτουργείΛειτουργεί με "Boolean datatype" καθώς λειτουργεί και με "bits".Λειτουργεί μόνο σε "Boolean datatype".
ΧρήσηΧρησιμοποιήστε το για να ελέγξετε τη λογική κατάσταση και επίσης να χρησιμοποιήσετε για να αποκρύψετε ορισμένα bit όπως τα bits ισοτιμίας.Χρησιμοποιείται μόνο για τον έλεγχο της λογικής κατάστασης.

Ορισμός του & (Bitwise AND)

Αυτός ο χειριστής '&' χρησιμοποιείται τόσο ως λογικός χειριστής (&) όσο και ως δυαδικός χειριστής. Λειτουργεί τόσο στα boolean όσο και στα δυαδικά δεδομένα. Όταν ο & χειριστής χρησιμοποιείται ως λογικός & χειριστής, τότε το αποτέλεσμα είναι "αληθές" αν και η πλευρά της έκφρασης της αξιολόγησης είναι αληθής, αλλιώς επιστρέφει "ψευδής". Επιτρέπει στον μεταγλωττιστή να αξιολογήσει και την πλευρά της έκφρασης. Δηλαδή, ακόμα και αν η αριστερή πλευρά της έκφρασης είναι ψευδής, αξιολογεί τη δεξιά πλευρά της έκφρασης.

Μας επιτρέπει να το καταλάβουμε με ένα παράδειγμα.

 int a = 4, b = 5, system.out.println ((a == 6) & (b ++ == 6)). system.out.println ("b =" + b). // output false b = 5 

Εδώ, με την αξιολόγηση της αριστερής πλευράς της έκφρασης (a == 6), οδηγεί σε ψευδείς, ο χειριστής & τότε αξιολογεί τη δεξιά πλευρά της έκφρασης (b ++ == 6) ως αποτέλεσμα, την τιμή των β βημάτων.

Όταν το '&' χρησιμοποιείται ως "bitwise operator", πρώτα μετατρέπει και τους δύο τελεστές σε δυαδική μορφή και στη συνέχεια λειτουργεί πάνω σε αυτό χρησιμοποιώντας τον χειριστή & bit-by-bit. Μετά τη λειτουργία, το αποτέλεσμα που προκύπτει, είναι σε δυαδική μορφή, το οποίο μετά μετατρέπεται σε δεκαδικό. Οποιοδήποτε bit που είναι 0 σε οποιονδήποτε από τους τελεστές είναι 0. Εάν και τα δυο δυαδικά ψηφία των τελεστών είναι 1, τότε το προκύπτον bit είναι 1. Το Bitwise & Operator καθοδηγείται από τον ίδιο πίνακα αληθείας όπως και από τον λογικό & χειριστή του.

Ας δούμε τη λειτουργία bit & operator.

 int a; α = 3 & 4. // 011 & 100 = 000 system.out.println ("a =" + a). // output a = 0 

Εδώ, οι δεκαδικές τιμές 3 και 4 μετατρέπονται αρχικά στη δυαδική τους μορφή, και στη συνέχεια ο & bitwise χειριστής εκτελεί την λειτουργία & on them bit-by-bit. Το αποτέλεσμα που προκύπτει είναι σε δυαδική μορφή, το οποίο στη συνέχεια μετατρέπεται ξανά σε δεκαδική μορφή.

Ορισμός του && (βραχυκύκλωμα AND)

Αυτός ο χειριστής && λειτουργεί ως λογικός χειριστής. Λειτουργεί μόνο στον τύπο δεδομένων boolean. Ονομάζεται επίσης χειριστής βραχυκυκλώματος. Καθώς ελέγχει μόνο την αριστερή πλευρά της έκφρασης. Εάν η αριστερή πλευρά της έκφρασης έχει ως αποτέλεσμα την ύπαρξη ψευδούς, τότε δεν ενοχλεί την αξιολόγηση της δεξιάς πλευράς της έκφρασης.

Μας επιτρέπει να κατανοήσουμε το παράδειγμα του λειτουργού του &&.

 int a = 4, b = 5, system.out.println ((a == 6) && (b ++ == 6)). system.out.println ("b =" + b). // output false b = 4 

Εδώ, καθώς η συνθήκη (a == 6) είναι ψευδής, ο && δεν αξιολογεί την έκφραση (b ++ == 6) ως αποτέλεσμα, η τιμή του b δεν αυξάνει.

Βασικές διαφορές μεταξύ & & &&

  1. Ο χειριστής & είναι ένας λογικός και ένας bitwise χειριστής, καθώς λειτουργεί και στα δύο booleans καθώς και στα δυαδικά δεδομένα, ενώ ο && χειριστής είναι ένας λογικός χειριστής καθώς λειτουργεί μόνο σε έναν τύπο δεδομένων boolean.
  2. Ο χειριστής & & αξιολογεί και την πλευρά της έκφρασης για να πάρει το τελικό αποτέλεσμα, ενώ ο & ο χειριστής αξιολογεί μόνο την αριστερή πλευρά της έκφρασης και αν αποδειχθεί ψευδής δεν αξιολογεί ούτε τη δεξιά πλευρά της έκφρασης.

Σημείωση:

Κατά την αξιολόγηση του τύπου δεδομένων boolean, και οι δύο χειριστές είναι "true" μόνο αν και ο πράκτορας είναι αληθής, αλλιώς επιστρέφει "false".

Συμπέρασμα:

Ο χειριστής & και &&, και οι δύο χρησιμοποιούνται για την αξιολόγηση της κατάστασης boolean, ενώ ο χειριστής && χρησιμοποιείται επίσης για τη λειτουργία bit. Όταν απαιτείται να αξιολογήσουμε και την πλευρά της έκφρασης, ο χειριστής & χρησιμοποιείται διαφορετικά, μπορούμε να χρησιμοποιήσουμε τον && χειριστή.

Top