Πώς να μετατρέψετε long σε int στην Java

Pos Na Metatrepsete Long Se Int Sten Java



Στην Java, μπορεί να υπάρξουν ορισμένες περιπτώσεις όπου ο προγραμματιστής πρέπει να εξοικονομήσει αποτελεσματικά τη μνήμη. Για παράδειγμα, η κατανομή του τύπου δεδομένων που έχει σχετικά μικρότερο εύρος τιμών ή η απαλλαγή από τις επιπλέον τιμές. Σε τέτοιες περιπτώσεις, η μετατροπή του ' μακρύς ' προς την ' int' στην Java τίθεται σε ισχύ με τον εξορθολογισμό των αριθμητικών πράξεων, την πολυπλοκότητα του κώδικα και απαιτεί συγκριτικά λιγότερο χρόνο εκτέλεσης.

Αυτό το άρθρο θα αναλύσει τη μετατροπή του 'long' σε 'int' στην Java.

Τι είναι το 'long' και το 'int' στην Java;

Ο ' μακρύς Ο τύπος στην Java κυμαίνεται από ' -9223372036854775808 ' προς την ' 922337203685477580 'και διατίθεται' 64 ' bits. Ο ' ενθ 'ο τύπος, ωστόσο, καταλαμβάνει' 32 ' bits που κυμαίνονται από ' -2147483648 ' προς την ' 2147483647 '. Αυτό σημαίνει ότι οποιοσδήποτε αριθμός ' ενθ Οι τύποι μπορούν εύκολα να υποστηριχθούν από ένα μακρύς πληκτρολογήστε αλλά δεν συμβαίνει πάντα τις περισσότερες φορές.







Πώς να μετατρέψετε το 'long' σε 'int' χρησιμοποιώντας Java;

Μετατρέπω ' μακρύς ' προς την ' ενθ ” στην Java, εφαρμόστε τις ακόλουθες προσεγγίσεις:



Προσέγγιση 1: Μετατροπή long σε int στην Java χρησιμοποιώντας τη μέθοδο 'Math.toIntExact()'

Ο ' Math.toIntExact() Η μέθοδος ' στην Java δίνει το ' ενθ “αξία από την παρεχόμενη” μακρύς ' διαφωνία. Αυτή η μέθοδος μπορεί να εφαρμοστεί για να περάσει απλώς το ' μακρύς ” την τιμή ως όρισμα και να την επιστρέψετε ως ακέραιο.



Σύνταξη





Μαθηματικά . toIntExact ( μακρύς val )

Σε αυτή τη σύνταξη, ' μακρύς βαλ Το ' αναφέρεται στην τιμή που πρέπει να επιστραφεί ως ' ενθ '.

Παράδειγμα
Ας δούμε γενικά το ακόλουθο παράδειγμα:



δημόσιο τάξη longtoint2 {
δημόσιο στατικός κενός κύριος ( Σειρά [ ] args ) {
μακρύς επιλογή 1 = 8624675L ;
μακρύς val2 = 3482398L ;
ενθ updateVal1 = Μαθηματικά . toIntExact ( επιλογή 1 ) ;
ενθ updVal2 = Μαθηματικά . toIntExact ( val2 ) ;
Σύστημα. έξω . println ( 'Η ακέραια τιμή είναι:' + updateVal1 ) ;
Σύστημα. έξω . println ( 'Η ακέραια τιμή είναι:' + updVal2 ) ;
}
}

Σε αυτό το απόσπασμα κώδικα, εκτελέστε τα ακόλουθα βήματα:

  • Αρχικά, αρχικοποιήστε τα δύο ' μακρύς ' αξίες.
  • Σημείωση: Το καθορισμένο ' μεγάλο ' στις τιμές αντιπροσωπεύουν και διαφοροποιούν το ' μακρύς 'τιμές από ' ενθ ' αξίες.
  • Μετά από αυτό, εφαρμόστε το ' Math.toIntExact() ” μεθοδεύει δύο φορές και συσσωρεύει και τις δύο αρχικοποιημένες μεγάλες τιμές, ως παράμετρο για να τις μετατρέψει σε ακέραιους αριθμούς.
  • Τέλος, καταγράψτε τις μετατρεπόμενες ακέραιες τιμές στην κονσόλα.

Παραγωγή

Στο παραπάνω αποτέλεσμα, μπορεί να αναλυθεί ότι εμφανίζονται οι αντίστοιχες ακέραιες τιμές.

Σημείωση: Η διαδικασία μετατροπής (μακράς διάρκειας σε int) λειτουργεί καλά όταν η τιμή του ' μακρύς Το ' είναι μικρότερο ή ίσο με τη μέγιστη τιμή του ' ενθ », δηλαδή (2147483647). Στην άλλη περίπτωση, παρουσιάζεται σφάλμα και μπορεί να υπάρξει και απώλεια δεδομένων.

Επίδειξη
Ας παρατηρήσουμε την έννοια που συζητήσαμε που οδηγεί στον περιορισμό:

Στο παραπάνω παράδειγμα, απλώς αυξήστε το τελευταίο ' μακρύς ” τιμή και εκτελέστε τη μετατροπή. Αυτό θα οδηγήσει στη συνάντηση « Υπερχείλιση ακέραιου αριθμού ' περιορισμός αφού η τιμή μετατροπής υπερβαίνει το ' ενθ ” μέγιστο όριο.

Προσέγγιση 2: Μετατροπή long σε int σε Java χρησιμοποιώντας 'Narrow Typecasting'

' Typecasting ” αντιστοιχεί στην εκχώρηση μιας τιμής ενός πρωτόγονου τύπου δεδομένων σε έναν άλλο. Σε αυτή την περίπτωση, το « στένωση δακτυλογράφησης ' τίθεται σε ισχύ αφού ο υψηλότερος τύπος δεδομένων, δηλ. ' μακρύς ' μετατρέπεται στον κατώτερο τύπο δεδομένων ' ενθ '. Αυτό μπορεί να επιτευχθεί τοποθετώντας απλώς την τιμή που πρέπει να μετασχηματιστεί ακολουθούμενη από τον επιθυμητό τύπο σε παρένθεση.

Παράδειγμα
Το ακόλουθο παράδειγμα εξηγεί την έννοια που συζητήθηκε:

δημόσιο τάξη longtoint {
δημόσιο στατικός κενός κύριος ( Σειρά [ ] args ) {
μακρύς επιλογή 1 = 647467L ;
μακρύς val2 = 348 239 λίτρα ;
ενθ updateVal1 = ( ενθ ) επιλογή 1 ;
ενθ updVal2 = ( ενθ ) val2 ;
Σύστημα. έξω . println ( 'Η ακέραια τιμή είναι:' + updateVal1 ) ;
Σύστημα. έξω . println ( 'Η ακέραια τιμή είναι:' + updVal2 ) ;
}
}

Στις παραπάνω γραμμές κώδικα:

  • Ομοίως, αρχικοποιήστε τα δύο ' μακρύς ' αξίες.
  • Στο επόμενο βήμα, εφαρμόστε το ' στενή δακτυλογράφηση ' προσέγγιση τοποθετώντας την τιμή που πρέπει να μετατραπεί ακολουθούμενη από τον επιθυμητό τύπο, δηλ. ' ενθ '.
  • Τέλος, εμφανίστε τη μετατροπή ' ενθ ' τιμές στην κονσόλα.

Παραγωγή

Σε αυτή την έξοδο, μπορεί να φανεί ότι το « μακρύς Οι τιμές μετατρέπονται σε ενθ αξίες, κατάλληλα.

Προσέγγιση 3: Μετατροπή μεγάλου αντικειμένου σε int στην Java χρησιμοποιώντας τη μέθοδο 'intValue()'

Ο ' intValue() Η μέθοδος ' στην Java επιστρέφει την τιμή του συσχετισμένου αριθμού με τη μορφή ' ενθ '. Αυτή η μέθοδος μπορεί να εφαρμοστεί για να μετατρέψει απλώς το συσχετισμένο long ' αντικείμενα ” σε ακέραιους αριθμούς.

Παράδειγμα
Ανατρέξτε στο παρακάτω παράδειγμα για να πραγματοποιήσετε τη μετατροπή:

δημόσιο τάξη longtoint3 {
δημόσιο στατικός κενός κύριος ( Σειρά [ ] args ) {
Long val1 = νέος Μακρύς ( 8624675L ) ;
Μεγάλη βαλβίδα 2 = νέος Μακρύς ( 3482398L ) ;
ενθ updateVal1 = επιλογή 1. intValue ( ) ;
ενθ updVal2 = val2. intValue ( ) ;;
Σύστημα. έξω . println ( 'Η ακέραια τιμή είναι:' + updateVal1 ) ;
Σύστημα. έξω . println ( 'Η ακέραια τιμή είναι:' + updVal2 ) ;
}
}

Στο παραπάνω μπλοκ κώδικα:

  • Πρώτα απ 'όλα, δημιουργήστε δύο ' μακρύς 'αντικείμενα μέσω του ' νέος 'λέξη-κλειδί και το ' Μακρύς() ” κατασκευαστής, αντίστοιχα.
  • Στις παραμέτρους του κατασκευαστή, καθορίστε τις μεγάλες τιμές που πρέπει να μετατραπούν σε ' ενθ '.
  • Τώρα, συσχετίστε το ' intValue() ' μέθοδος και με τα δύο δημιουργημένα αντικείμενα και μετατροπή των συσσωρευμένων ' μακρύς 'τιμές σε ' ακέραιοι αριθμοί ” και εμφανίστε τα.

Παραγωγή

Το παραπάνω αποτέλεσμα υποδηλώνει ότι οι τιμές των αντικειμένων μετατρέπονται σε ' ακέραιοι αριθμοί ” κατάλληλα.

συμπέρασμα

Για να μετατρέψετε το long σε int στην Java, εφαρμόστε το ' Math.toIntExact() 'μέθοδος, η ' Στενή Τυπογραφία 'προσέγγιση ή η ' intValue() 'μέθοδος. Αυτές οι προσεγγίσεις μετατρέπουν την αρχικοποιημένη long τιμή και αντικείμενο σε ακέραιο υπό τον όρο ότι το ' μακρύς Η τιμή που πρέπει να μετατραπεί δεν υπερβαίνει τη μέγιστη τιμή του ενθ '. Αυτό το ιστολόγιο καθοδηγείται στη μετατροπή long σε int χρησιμοποιώντας Java.