2577 - Get Bit: Difference between revisions

From Bitnami MediaWiki
No edit summary
mNo edit summary
Tag: visualeditor
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>