DIMITRISG Δημοσ. 16 Αυγούστου 2016 Δημοσ. 16 Αυγούστου 2016 Χαίρετε, έχω μια ερώτηση σχετικά με την μετατατροπή ενός δεκαξεαδικού σε δυαδικό στην python Για παράδειγμα τον 4C μου τον μετατρέπει σε : >>> bin(int('4C', 16))'0b1001100' και >>> bin(int('1C', 16))'0b11100' >>> bin(int('0C', 16))'0b1100' Η ερώτηση είναι: δεν θα έπρεπε σε κάθε αποτέλεσμα να έχω 8 bit; Το ερώτημα μου γεννήθηκε όταν έπρεπε να βρω τα μπιτ 6 και 7 του 4C Μήπως πρέπει να προσθέτω τα μηδενικά αριστερά ούτως ώστε να έχω πάντα 8 μπιτ; Ευχαριστώ εκ των προτέρων
stavrosyomafias Δημοσ. 16 Αυγούστου 2016 Δημοσ. 16 Αυγούστου 2016 Ναι.. ακριβώς.. συμπληρώνεις από αριστερά με μηδενικά.. όπως και στο δεκαδικό.. το 21 είναι ίσο με το 021 ίσο με το 00021... όπως επίσης το 0C είναι ίσο με το C, γιατί: C*(10^0) == C*(10^0)+0*(10^1) == 12*1+0 == 12 Οπότε στο θέμα μας, ο λόγος που το κάνει αυτό η python είναι για να μην δείχνει ασκοπα μηδενικά ενώ δεν χρειάζεται (παρόλο που εσένα στο μάτι, μπορεί να σε βοηθάνε). 1
k33theod Δημοσ. 17 Αυγούστου 2016 Δημοσ. 17 Αυγούστου 2016 Επίσης δεν χρειάζεται ενδιάμεση μετατροπή σε δεκαδικό γίνεται κατευθείαν >>> bin(100) '0b1100100' >>> hex(100) '0x64' >>> bin(0x64) '0b1100100' >>> oct(100) '0o144' >>> bin(0o144) '0b1100100' >>> 0o144+0x64+0b1100100+100 400 2
DIMITRISG Δημοσ. 17 Αυγούστου 2016 Μέλος Δημοσ. 17 Αυγούστου 2016 Ευχαριστώ δεν το ήξερα! >>> bin(0x4C)'0b1001100'>>> bin(int('4C', 16))'0b1001100'
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα