2577 - Get Bit: Difference between revisions
No edit summary |
mNo edit summary |
||
Line 2: | Line 2: | ||
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. | 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 == | == 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. | 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 == | == Date de ieșire == | ||
Programul va afișa pe ecran, pe prima linie, neseparate prin spațiu, cele T valori, determinate, în ordinea dată. | Programul va afișa pe ecran, pe prima linie, neseparate prin spațiu, cele '''T''' valori, determinate, în ordinea dată. | ||
== Restricții de precizări == | == Restricții de precizări == | ||
*numerele n sunt memorate cu tipul de date pe 64 de biți, cu semn | *numerele n sunt memorate cu tipul de date pe 64 de biți, cu semn | ||
Line 26: | Line 26: | ||
: 1 1 1 | : 1 1 1 | ||
== Rezolvare ver. 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> |
Revision as of 07:28, 11 April 2023
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
Programul va afișa pe ecran, pe prima linie, neseparate prin spațiu, cele T valori, determinate, în ordinea dată.
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>