2577 - Get Bit
Cerință
Se dau mai multe perechi de forma număr, bit. Afișați pentru fiecare pereche valoarea bitului corespunzător din reprezentarea internă pe 64 de biți a numărului dat.
Date de intrare
Programul citește de la tastatură numărul T, iar apoi T linii care conțin, fiecare, câte două numere separate prin spațiu n și b cu semnificația că se cere valoarea bitului de pe poziția b din reprezentarea internă a numărului 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, neseparate prin spațiu, cele T valori, determinate, în ordinea dată. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări
- numerele n sunt memorate cu tipul de date pe 64 de biți, cu semn
- numărul b este natural, cuprins între 0 și 63, inclusiv
Exemplul 1
- Intrare
- 2
- 6 0
- 5 2
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 0 1
Exemplul 2
- Intrare
- 3
- 7 1
- 15 2
- 21 0
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1 1 1
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(T, n, b):
return all.isdigit() and 0 <= int(T), int(n), int(b) <= 63
def getbit(T, n, b):
for i in range(T, n, b): n, b = map(int, input().split()) # citim o pereche numar, bit
# folosim operatorul de shiftare la dreapta pentru a extrage bitul specificat din reprezentarea binara a numarului # apoi folosim operatorul bitwise & cu valoarea 1 pentru a obtine valoarea bitului T = (n >> b) & 1
print(T) # afisam valoarea bitului
if __name__ == "__main__":
T = int(input()) # citim numarul de perechi numar, bit n, b = map(int, input().split()) # citim o pereche numar, bit
if validare(T, n, b):
T = int(T) n = int(n) b = int(b)
print("Datele introduse corespund restricțiilor impuse.") getbit(T, n, b)
else:
print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>