Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Χαίρετε, έχω μια ερώτηση σχετικά με την μετατατροπή ενός δεκαξεαδικού σε δυαδικό στην python

 

Για παράδειγμα τον 4C μου τον μετατρέπει σε :

 

>>> bin(int('4C', 16))
'0b1001100'

 

και

>>> bin(int('1C', 16))
'0b11100'

>>> bin(int('0C', 16))
'0b1100'

 

Η ερώτηση είναι: δεν θα έπρεπε σε κάθε αποτέλεσμα να έχω 8 bit;

 

Το ερώτημα μου γεννήθηκε όταν έπρεπε να βρω τα μπιτ 6 και 7 του 4C

Μήπως πρέπει να προσθέτω τα μηδενικά αριστερά ούτως ώστε να έχω πάντα 8 μπιτ;

 

Ευχαριστώ εκ των προτέρων

 

 

Δημοσ.

Ναι.. ακριβώς.. συμπληρώνεις από αριστερά με μηδενικά.. όπως και στο δεκαδικό.. το 21 είναι ίσο με το 021 ίσο με το 00021... όπως επίσης το 0C είναι ίσο με το C, γιατί:

C*(10^0) == C*(10^0)+0*(10^1) ==  12*1+0 == 12

 

Οπότε στο θέμα μας, ο λόγος που το κάνει αυτό η python είναι για να μην δείχνει ασκοπα μηδενικά ενώ δεν χρειάζεται (παρόλο που εσένα στο μάτι, μπορεί να σε βοηθάνε).

  • Like 1
Δημοσ.

Επίσης δεν χρειάζεται ενδιάμεση μετατροπή σε δεκαδικό γίνεται κατευθείαν

>>> bin(100)
'0b1100100'
>>> hex(100)
'0x64'
>>> bin(0x64)
'0b1100100'
>>> oct(100)
'0o144'
>>> bin(0o144)
'0b1100100'
>>> 0o144+0x64+0b1100100+100
400
  • Like 2

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...