2586 - Get Secv Bits

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerință

Se dă un număr n, întreg pe 32 de biți. Afișați valoarea care se obține cu biții de pe pozițiile 8, 7, 6 (în aceeași ordine ca în numărul dat).

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran numărul determinat. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • 1 ⩽ n ⩽ 10000

Exemplul 1

Intrare
65
Ieșire
Datele introduse corespund restricțiilor impuse.
1

Exemplul 2

Intrare
157
Ieșire
Datele introduse corespund restricțiilor impuse.
2

Rezolvare ver. 1

def validare(n):
    return n.isdigit() and 1 <= int(n) <= 10000


def getsecvbits(n):
    result = ((n >> 6) & 0b111)
    # folosim >> pentru a muta numărul la dreapta cu 6 poziții, pentru a muta biții,apoi aplicam operatorul de si pe biti cu valoarea 0b111
    print("Valoarea obtinuta este:", result)


if __name__ == "__main__":
    n = input("Introduceti valoarea lui n: ")
    if validare(n):
        n = int(n)
        print("Datele introduse corespund restricțiilor impuse.")
        getsecvbits(n)
    else:
        print("Datele introduse nu corespund restricțiilor impuse.")