kzen.dev
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
Justin Standard
Justin Standard
Question

Cum îți exprimi binar literali în Python?

Cum îți exprimi un număr întreg ca un număr binar cu Python literale?

Am fost cu ușurință capabil de a găsi răspunsul pentru hex:

>>> 0x12AF
4783
>>> 0x100
256

și octal:

>>> 01267
695
>>> 0100
64

Cum să utilizați literali să-și exprime binar în Python?


Rezumatul Răspunsurilor

  • Python 2.5 și mai devreme: poate exprima binar folosind int('01010101111',2) dar nu cu un literal.
  • Python 2.5 si mai devreme: nu există nici o cale* să-și exprime binar literali.
  • Python 2.6 beta: puteți face astfel: 0b1100111 " sau " 0B1100111.
  • Python 2.6 beta: va permite, de asemenea, 0o27 " sau " 0O27 (al doilea caracter este litera O) să reprezinte o octal.
  • Python 3.0 beta: la Fel ca 2.6, dar nu va mai permite vârstă 027 sintaxa pentru octals.
334 2008-08-04T18:20:36+00:00 6
Jim  Fasarakis Hilliard
Jim Fasarakis Hilliard
Întrebarea editată 13 martie 2017 в 1:47
Programare
python
syntax
binary
integer
literals
Solution / Answer
Andreas Thomas
Andreas Thomas
16 august 2008 в 12:35
2008-08-16T12:35:36+00:00
Mai mult
Sursă
Editează
#8407595

Pentru referință—viitor Python posibilități: Începând cu Python 2.6 vă puteți exprima binar literali folosind prefixul 0b sau 0B:

>>> 0b101111
47

Puteți folosi, de asemenea, noi ** bin funcția pentru a obține reprezentarea binară a unui număr de:

>>> bin(173)
'0b10101101'

Versiune de dezvoltare a documentației: Ce's New in Python 2.6

277
0
Louis Brandy
Louis Brandy
4 august 2008 в 6:34
2008-08-04T18:34:45+00:00
Mai mult
Sursă
Editează
#8407594
>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255

Un alt mod.

 dave4420
dave4420
Răspuns editat 22 ianuarie 2012 в 5:47
71
0
Aaron Hall
Aaron Hall
14 mai 2016 в 11:58
2016-05-14T11:58:03+00:00
Mai mult
Sursă
Editează
#8407597

Cum te exprima binar literali în Python?

Ei're nu "binar" literali, ci, mai degrabă, "întreg literali". Vă puteți exprima întreg literali cu un format binar, cu un " 0 "urmat de un" B " sau "b", urmat de o serie de zerouri și cele, de exemplu:

>>> 0b0010101010
170
>>> 0B010101
21

Din Python 3 documente, acestea sunt moduri de furnizarea de literali întregi în Python:

Întreg literale sunt descrise de următoarele definiții lexicale:

integer ::= decinteger | bininteger | octinteger | hexinteger decinteger ::= nonzerodigit ([""] cifre)* | "0"+ ([""] "0")* bininteger ::= "0" ("b" | "B") ([""] bindigit)+ octinteger ::= "0" ("o" | "O") ([""] octdigit)+ hexinteger ::= "0" ("x" | "X") (["_"] hexdigit)+ nonzerodigit ::= "1"..."9" cifra ::= "0"..."9" bindigit ::= "0" | "1" octdigit ::= "0"..."7" hexdigit ::= digit | "o"..."f" | "O"..."F"

nu Există nici o limită pentru lungimea de literali întregi în afară de ceea ce pot fi stocate în memoria disponibilă.

Rețineți că zerourile de la început într-un non-zero, număr zecimal nu sunt permise. Acest lucru este de dezambiguizare cu C-stil octal literali, care Python folosit înainte de versiunea 3.0.

Câteva exemple de literali întregi:

7 2147483647 0o177 0b100110111 3 79228162514264337593543950336 0o377 0xdeadbeef 100_000_000_000 0b_1110_0101 s-a Schimbat în versiunea 3.6: Subliniaza sunt acum permise pentru gruparea scopuri în literali.

Alte moduri de a exprima binar:

Puteți avea zerouri și cele într-un șir de obiecte care pot fi manipulate (deși probabil ar trebui să facă operațiuni la nivel de bit pe întreg în cele mai multe cazuri) - doar trece int șir de zero-uri și unu și bază sunt de conversie de la (2):

>>> int('010101', 2)
21

Opțional, puteți avea 0b sau 0B prefix:

>>> int('0b0010101010', 2)
170

Dacă se trece de la " 0 " ca bază, se va presupune că baza 10 dacă șirul nu't specifica cu un prefix:

>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21

De conversie de la int la om poate fi citit binar:

Puteți trece un număr întreg de la bin pentru a vedea un șir de reprezentare de un binar literal:

>>> bin(21)
'0b10101'

Și puteți combina bin și int pentru a merge înainte și înapoi:

>>> bin(int('010101', 2))
'0b10101'

Puteți utiliza un format caietul de sarcini, precum și, dacă doriți să aveți lățime minimă cu zerouri precedente:

>>> format(int('010101', 2), '{fill}{width}b'.format(width=10, fill=0))
'0000010101'
>>> format(int('010101', 2), '010b')
'0000010101'
Aaron Hall
Aaron Hall
Răspuns editat 13 martie 2017 в 3:22
22
0
Mehmet Ugurbil
Mehmet Ugurbil
21 iunie 2016 в 10:48
2016-06-21T22:48:20+00:00
Mai mult
Sursă
Editează
#8407598

0 din start specifică aici că baza este 8 (nu 10), care este destul de ușor pentru a vedea:

>>> int('010101', 0)
4161

Dacă tu nu't începe cu un 0, atunci python își asumă este un număr în baza 10.

>>> int('10101', 0)
10101
1
0
Mark Biek
Mark Biek
4 august 2008 в 6:26
2008-08-04T18:26:13+00:00
Mai mult
Sursă
Editează
#8407592

În măsura în care pot spune Python, prin 2.5, suporta doar hexazecimal & octal literali. Am găsit niște discuții despre adăugarea binare pentru versiunile viitoare, dar nimic clar.

-1
0
 sparkes
sparkes
4 august 2008 в 6:27
2008-08-04T18:27:26+00:00
Mai mult
Sursă
Editează
#8407593

Sunt destul de sigur că acest lucru este unul din lucrurile ca urmare a schimbărilor în Python 3.0 poate cu bin() pentru a merge cu hex() și octombrie().

EDIT: lbrandy's răspunsul este corect în toate cazurile.

Peter Mortensen
Peter Mortensen
Răspuns editat 13 decembrie 2009 в 4:46
-2
0
Comunități asemănătoare 1
Python România
Python România
127 utilizatori
Comunitatea pasionaților de Python din România.
Deschide telegram
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
Daniel Gogov
Înregistrat 6 zile în urmă
2
工藤 芳則
Înregistrat 1 săptămână în urmă
3
Ирина Беляева
Înregistrat 2 săptămâni în urmă
4
Darya Arsenyeva
Înregistrat 2 săptămâni în urmă
5
anyta nuam-nuam (LapuSiK)
Înregistrat 2 săptămâni în urmă
DE
ES
ID
JA
KO
RO
RU
TR
ZH
© kzen.dev 2023
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire