Η φίλη σου η Eliud κληρονόμησε μια φάρμα από τη γιαγιά της, την Tigist. Η γιαγιά της ήταν εφευρέτρια και είχε την τάση να φτιάχνει πράγματα με υπερβολικά περίπλοκο τρόπο. Το κοτέτσι έχει μια ψηφιακή οθόνη που δείχνει έναν κωδικοποιημένο αριθμό, ο οποίος αντιπροσωπεύει τις θέσεις όλων των αυγών που θα μπορούσαν να μαζευτούν.
Η Eliud σου ζητάει να γράψεις ένα πρόγραμμα που δείχνει τον πραγματικό αριθμό των αυγών στο κοτέτσι.
Η κωδικοποίηση της πληροφορίας για τις θέσεις υπολογίζεται ως εξής:
1 για ένα αυγό που υπάρχει ή 0 για ένα άδειο σημείο. _ _ _ _ _ _ _
|E| |E|E| | |E|
_ _ _ _ _ _ _
|1|0|1|1|0|0|1|
89
4
_ _ _ _ _ _ _
| | | |E| | | |
_ _ _ _ _ _ _
|0|0|0|1|0|0|0|
8
1
Η αποστολή σου είναι να μετρήσεις τον αριθμό των 1 bit στη δυαδική αναπαράσταση ενός αριθμού.
Μην αγγίξεις αυτή τη λειτουργικότητα μέτρησης bit που σου παρέχει η τυπική βιβλιοθήκη σου! Λύσε το μόνος σου χρησιμοποιώντας άλλα βασικά εργαλεία.
Στην PHP υπάρχουν τελεστές bitwise.
Για παράδειγμα, ο τελεστής "bitwise and" (&) μπορεί να χρησιμοποιηθεί για να ελέγξεις αν ένα bit ενός αριθμού είναι ορισμένο:
$number = 89; // 0b01011001
$mask16 = 16; // 0b00010000
$mask32 = 32; // 0b00100000
$isMask16 = ($number & $mask16) > 0; // 0b00010000 > 0 => TRUE
$isMask32 = ($number & $mask32) > 0; // 0b00000000 > 0 => FALSE
Γράψου στο Exercism για να μάθεις και να κατακτήσεις PHP με 11 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.